2015-02-21 2 views
3

В php manual fileatime определяется как «время последнего доступа к файлу». Но в моем коде я открыл и прочитал содержимое файла. Но fileatime дает мне дату 16 февраля. Это означает, что я последний раз обращался к файлу в 16 февраля. Но я обратился к файлу прямо сейчас. Почему он не дает мне текущую дату?разница между fileatime и filectime в php

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.

ответ

4

Время доступа к файлам должно быть действительно в последний раз, к файлу был обращен доступ.

Дело в том, что сегодня на многих системах время доступа не поддерживается. Например, при установке (например, fstab) можно указать, что время доступа вообще не обновляется.

Во многих системах эта функция отключена, поскольку SSD будут носить намного быстрее, когда небольшие изменения будут сделаны часто, например, изменение времени доступа к файлам. Я бы предположил, что время доступа, которое вы получили, - это время создания, потому что при создании время записывается один раз и никогда не обновляется.

Таким образом, у вас есть только время модификации и время создания (также должно быть доступно как отдельная метка времени), доступное для одного файла.

4

filemtime() дает вам последний раз, когда вы изменили содержание.

И цитата из инструкции:

Эта функция возвращает время, когда блоки данных файла были записаны в, то есть время, когда содержимое файла было изменено .

EDIT:

Теперь я понимаю, вы спрашиваете о fileatime(). fopen() не обновляется, как вы ожидаете, время модификации. Вы хотите использовать touch() для обновления времени модификации.

+0

Я также изменил содержимое файла, добавил несколько символов. Но все же дал тот же результат. –

+0

@ AL-zami. А ваш вопрос о 'fileatime()' not 'filemtime()', моя ошибка. обновил мой ответ – Rizier123

Смежные вопросы