- fileatime
- Errors/Exceptions
- Examples
- Notes
- See Also
- filectime
- Список параметров
- Возвращаемые значения
- Ошибки
- Примеры
- Примечания
- Смотрите также
- User Contributed Notes 9 notes
- filemtime
- Список параметров
- Возвращаемые значения
- Примеры
- Ошибки
- Примечания
- Смотрите также
- PHP функции filectime() fileatime() filemtime()
- Из документации
- Примеры
- Получим (без кэша):
- Получим (с кэшем):
fileatime
Returns the time the file was last accessed, or false on failure. The time is returned as a Unix timestamp.
Errors/Exceptions
Upon failure, an E_WARNING is emitted.
Examples
Example #1 fileatime() example
// outputs e.g. somefile.txt was last accessed: December 29 2002 22:16:23.
$filename = ‘somefile.txt’ ;
if ( file_exists ( $filename )) echo » $filename was last accessed: » . date ( «F d Y H:i:s.» , fileatime ( $filename ));
>
Notes
Note:
The atime of a file is supposed to change whenever the data blocks of a file are being read. This can be costly performance-wise when an application regularly accesses a very large number of files or directories.
Some Unix filesystems can be mounted with atime updates disabled to increase the performance of such applications; USENET news spools are a common example. On such filesystems this function will be useless.
Note:
Note that time resolution may differ from one file system to another.
Note: The results of this function are cached. See clearstatcache() for more details.
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to Supported Protocols and Wrappers to determine which wrappers support stat() family of functionality.
See Also
filectime
Возвращает время изменения индексного дескриптора (inode) файла.
Список параметров
Возвращаемые значения
Возвращает время последнего изменения файла или false в случае возникновения ошибки. Время возвращается в формате временной метки Unix.
Ошибки
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .
Примеры
Пример #1 Пример использования функции filectime()
// Пример вывода: Файл somefile.txt в последний раз был изменён: December 29 2002 22:16:23.
$filename = ‘somefile.txt’ ;
if ( file_exists ( $filename )) echo «Файл $filename в последний раз был изменён: » . date ( «F d Y H:i:s.» , filectime ( $filename ));
>
Примечания
Замечание:
Примечание. На большинстве платформ Unix, файл считается изменённым, если изменены данные его индексного дескриптора, что включает информацию о правах на файл, о его владельце, группе и другие метаданные, содержащиеся в индексном дескрипторе. Обратитесь также к описаниям функций filemtime() (данная функция полезна для создания сообщений типа: «Последнее обновление от . » на веб-страницах) и fileatime() .
Замечание:
Учтите также, что в некоторых описаниях работы Unix ctime представляется как время создания файла. Это неверно. В большинстве файловых систем Unix понятие времени создания файла отсутствует.
Замечание:
Учтите, что обработка времени может отличаться в различных файловых системах.
Замечание: Результаты этой функции кешируются. Более подробную информацию смотрите в разделе clearstatcache() .
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat() , смотрите в разделе Поддерживаемые протоколы и обёртки.
Смотрите также
User Contributed Notes 9 notes
This method gets all the files in a directory, and echoes them in the order of the date they were added (by ftp or whatever).
function dirList ( $directory , $sortOrder )
//Get each file and add its details to two arrays
$results = array();
$handler = opendir ( $directory );
while ( $file = readdir ( $handler )) <
if ( $file != ‘.’ && $file != ‘..’ && $file != «robots.txt» && $file != «.htaccess» ) $currentModified = filectime ( $directory . «/» . $file );
$file_names [] = $file ;
$file_dates [] = $currentModified ;
>
>
closedir ( $handler );
//Sort the date array by preferred order
if ( $sortOrder == «newestFirst» ) arsort ( $file_dates );
>else asort ( $file_dates );
>
//Match file_names array to file_dates array
$file_names_Array = array_keys ( $file_dates );
foreach ( $file_names_Array as $idx => $name ) $name = $file_names [ $name ];
$file_dates = array_merge ( $file_dates );
//Loop through dates array and then echo the list
foreach ( $file_dates as $file_dates ) $date = $file_dates ;
$j = $file_names_Array [ $i ];
$file = $file_names [ $j ];
$i ++;
echo «File name: $file — Date Added: $date .
«»;
>
I hope this is useful to somebody.
filemtime
Данная функция возвращает время последней записи блоков файла, иначе говоря, изменения содержания файла.
Список параметров
Возвращаемые значения
Возвращает время последнего изменения указанного файла, или FALSE в случае возникновения ошибки. Время возвращается в формате временной метки Unix, который подходит для передачи в качестве аргумента функции date() .
Примеры
Пример #1 Пример использования функции filemtime()
// Пример вывода: В последний раз файл somefile.txt был изменен: December 29 2002 22:16:23.
?php
$filename = ‘somefile.txt’ ;
if ( file_exists ( $filename )) echo «В последний раз файл $filename был изменен: » . date ( «F d Y H:i:s.» , filemtime ( $filename ));
>
?>
Ошибки
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING .
Примечания
Замечание:
Учтите, что обработка времени может отличаться в различных файловых системах.
Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache() .
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat() , смотрите в Поддерживаемые протоколы и обработчики (wrappers).
Смотрите также
- filectime() — Возвращает время изменения индексного дескриптора файла
- stat() — Возвращает информацию о файле
- touch() — Устанавливает время доступа и модификации файла
- getlastmod() — Определение времени последней модификации страницы
PHP функции filectime() fileatime() filemtime()
Функции PHP filectime() fileatime() filemtime() очень похожи друг на друга. Легко запутаться, когда и какой нужно использовать — какая функция, какую метку времени получает. В этой заметке разберем что тут к чему — какие метки времени сохраняются при создании файла, какие при изменении или чтении файлов.
Из документации
filectime( $file_path ) (create) Возвращает время последнего изменения указанного файла. Изменяется при создании, изменении файла. Эта функция проверяет наличие изменений в Inode файла, и обычных изменений. Изменения Inode — это изменение разрешений, владельца, группы и других метаданных. filemtime( $file_path ) (modified) Возвращает время последнего изменения контента файла. Изменяется при изменении контента файла. fileatime( $file_path ) (access) Возвращает время последнего доступа к файлу. Изменяется при чтении файла (не всегда). Заметка: на большинстве серверах такие обновления времени доступа к файлу отключены, так как эта функция снижает производительность приложений, регулярно обращающихся к файлам.
Возвращают
Все функции кэшируют результат. Чтобы сбросить кэш используйте функцию clearstatcache() . Пример кэша. Если в одном PHP процессе сначала использовать одну из «функции», а затем изменить данные или контент файла (использовать touch() , file_put_contents() ) и попробовать снова использовать «функции», то функции вернут первый результат, хотя на самом деле он изменился.
Примеры
$file = FC_PARSER_PATH . 'info/_temp_test_file'; @ unlink( $file ); file_put_contents( $file, 'content' ); $__echo = function() use ($file)< clearstatcache(); // очищаем кэш echo time() ."\t time()\n"; echo filectime( $file ) ."\t filectime()\n"; echo filemtime( $file ) ."\t filemtime()\n"; echo fileatime( $file ) ."\t fileatime()\n"; >; $__echo(); sleep(1); echo "\n\nchmod()\n"; chmod( $file, 0777 ); $__echo(); sleep(1); echo "\n\nfile_get_contents()\n"; file_get_contents( $file ); $__echo(); sleep(1); echo "\n\nfile_put_contents()\n"; file_put_contents( $file, 'content2' ); $__echo(); echo "\n\ntouch()\n"; touch( $file, 22222222222, 33333333333 ); touch( $file, 44444444444, 55555555555 ); $__echo();
Получим (без кэша):
1540437788 time() 1540437788 filectime() 1540437788 filemtime() 1540437788 fileatime() chmod() 1540437789 time() 1540437789 filectime() 1540437788 filemtime() 1540437788 fileatime() file_get_contents() 1540437790 time() 1540437789 filectime() 1540437788 filemtime() 1540437788 fileatime() file_put_contents() 1540437791 time() 1540437791 filectime() 1540437791 filemtime() 1540437788 fileatime() touch() 1540437791 time() 1540437791 filectime() 44444444444 filemtime() 55555555555 fileatime()
По результату можно сказать:
Функция | Меняет | Не меняет |
---|---|---|
chmod() | ctime | mtime , atime |
file_put_contents() | ctime и mtime | atime |
touch() | ctime , mtime , atime | — |
file_get_contents() | может менять atime | ctime , mtime |
file_get_contents() ничего не меняет в этом примере, потому что изменение atime почти всегда отключено на сервере для производительности.
Получим (с кэшем):
1540437873 time() 1540437873 filectime() 1540437873 filemtime() 1540437873 fileatime() chmod() 1540437874 time() 1540437873 filectime() 1540437873 filemtime() 1540437873 fileatime() file_get_contents() 1540437875 time() 1540437873 filectime() 1540437873 filemtime() 1540437873 fileatime() file_put_contents() 1540437876 time() 1540437873 filectime() 1540437873 filemtime() 1540437873 fileatime() touch() 1540437876 time() 1540437873 filectime() 1540437873 filemtime() 1540437873 fileatime()