(PHP 4, PHP 5, PHP 7)
stat — Возвращает информацию о файле
$filename
)
Собирает статистическую информацию о файле
filename
. Если filename
является символической ссылкой, информация собирается о самом файле,
а не ссылке.
Функция lstat() идентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.
filename
Путь к файлу.
Числовой | Ассоциативный | Описание |
---|---|---|
0 | dev | номер устройства |
1 | ino | номер inode * |
2 | mode | режим защиты inode |
3 | nlink | количество ссылок |
4 | uid | userid владельца * |
5 | gid | groupid владельца * |
6 | rdev | тип устройства, если устройство inode |
7 | size | размер в байтах |
8 | atime | время последнего доступа (временная метка Unix) |
9 | mtime | время последней модификации (временная метка Unix) |
10 | ctime | время последнего изменения inode (временная метка Unix) |
11 | blksize | размер блока ввода-вывода файловой системы ** |
12 | blocks | количество используемых 512-байтных блоков ** |
** Доступен только на системах, поддерживающих тип st_blksize - другие системы (например, Windows) вернут -1.
В случае ошибки stat() возвращает FALSE
.
Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.
В случае ошибки будет сгенерирована ошибка уровня E_WARNING
.
Пример #1 Пример использования stat()
<?php
/* Получаем статистику файла */
$stat = stat('C:\php\php.exe');
/*
* Выводим последнее время доступа к файлу, это тоже самое, что и
* вызов fileatime()
*/
echo 'Последнее время доступа: ' . $stat['atime'];
/*
* Выводим время изменения файла, это тоже самое, что и
* вызов filemtime()
*/
echo 'Время изменения: ' . $stat['mtime'];
/* Выводим номер устройства */
echo 'Номер устройства: ' . $stat['dev'];
?>
Пример #2 Использование информации из stat() вместе с touch()
<?php
/* Получаем статистику файла */
$stat = stat('C:\php\php.exe');
/* Удалось получить эту статистику? */
if (!$stat) {
echo 'вызов stat() не удался...';
} else {
/*
* Мы хотим увеличить время последнего доступа к файлу
* на 1 неделю вперед.
*/
$atime = $stat['atime'] + 604800;
/* Касаемся файла */
if (!touch('some_file.txt', time(), $atime)) {
echo 'Не удалось коснуться файла...';
} else {
echo 'touch() выполнился успешно...';
}
}
?>
Замечание:
Учтите, что обработка времени может отличаться в различных файловых системах.
Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).