В php руководство fileatime определяется как «время последнего доступа к файлу». Но в моем коде я открыл и прочитал содержимое файла. Но fileatime дает мне дату 16 февраля. Что означает, что я последний раз обращался к файлу 16 февраля ??. Но я получил доступ к файлу прямо сейчас. Почему он не дает мне текущую дату?
set_include_path('c://Users/shimantta/Desktop/');
$file='hehe.txt';
$open=fopen($file,'r');
echo fread($open,filesize($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",filemtime($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",fileatime($file)).'</br>';
echo "Last modified: ".date("F d Y H:i:s.",filemtime($file));
я собираюсь скопировать здесь
Последнее изменение: 21 февраля 2015 г. 19:57:21.
Последнее изменение: 16 февраля 2015 года 05:56:16.
Последнее изменение: 21 февраля 2015 г. 19:57:21.
Время доступа к файлу действительно должно быть последним, когда к файлу обращались.
Дело в том, что сегодня во многих системах время доступа не поддерживается. Например, при монтаже (например, fstab) можно утверждать, что время доступа вообще не обновляется.
Во многих системах эта функция отключена, поскольку твердотельные накопители будут изнашиваться гораздо быстрее, когда часто будут вноситься небольшие изменения, например, изменение времени доступа к файлам. Я предполагаю, что время доступа, которое вы получили, является временем создания, потому что при создании время записывается один раз и никогда не обновляется.
Таким образом, у вас есть только время изменения и время создания (также должны быть доступны в виде отдельной отметки времени) для одного файла.
filemtime()
дает вам последний раз, когда вы изменили содержимое.
И цитата из руководства:
Эта функция возвращает время, когда блоки данных файла были записаны, то есть время, когда содержимое файла было изменилось.
РЕДАКТИРОВАТЬ:
Теперь я вижу, что вы спрашиваете о fileatime()
, fopen()
не обновляется, как вы ожидаете, время модификации. Вы хотите использовать touch()
обновить время модификации.