Как в PHP получить дату изменения и время последнего доступа к файлу?

как в php получить дату изменения и время последнего доступа к файлу?

Особенности получения дат из файла

Существует множество разнообразных файловых систем, которые по своему подходят к хранению административной информации. Большинство из них позволяют получить даты последнего доступа и изменения файла. Файловая система ntfs, используемая в операционной системе Windows также сохраняет и дату создания файла. В Linux принято использовать название «atime» для даты последнего доступа, и «mtime» для изменения.

Язык программирования PHP является кроссплатформенным. Он предоставляет унифицированные интерфейсы взаимодействия с файловыми системами. Поэтому разработчики PHP-интерпретатора добавили встроенные функции извлечения последнего времени доступа и изменения файла, отбросив даты создания. Кому-то такое решение покажется странным, но это единственные инструменты, работающие в любой системе.

Получение даты изменения и доступа

В PHP существует две простые функции, с помощью которых можно получить даты последнего доступа или изменения файла. Обе возвращают целочисленное значение в формате timestamp (количество секунд, прошедших с 1 января 1970 года) или булево значение false в случае ошибки. Функции принимают всего один параметр строкового типа. В нем необходимо передать место расположения файла.

Функция fileatime() отвечает за получение времени последнего доступа к файлу. Оно может обновляться в случае изменения содержимого файла, либо при операциях чтения. В отличие от неё функция filemtime() возвращает только дату последнего изменения.

//создаем новый файл в корневой директории сайта
$fileName = $_SERVER['DOCUMENT_ROOT']. '/test-file.txt';
file_put_contents($fileName, 'записываем дату изменения');


//ждем пять секунд и читаем строку из файла для изменения
//последнего времени доступа
sleep(5);
file_get_contents($fileName);


//получаем и выводим на экран даты доступа и изменения
$changeTime = filemtime($fileName);
echo "Дата изменения в формате timestamp: {$changeTime}<br>";
echo 'Понятный формат: '. date('Y-m-d/H:i:s', $changeTime). '<br>';
//Результат:
//Дата доступа в формате timestamp: 1499804132
//Понятный формат: 2017-07-11/22:15:32


$accessTime = fileatime($fileName);
echo "Дата доступа в формате timestamp: {$accessTime}<br>";
echo 'Понятный формат: '. date('Y-m-d/H:i:s', $accessTime). '<br>';
//Результат:
//Дата изменения в формате timestamp: 1499804137
//Понятный формат: 2017-07-11/22:15:37

Последние публикации