Файловая система
PHP Manual

stat

(PHP 4, PHP 5)

statВозвращает информацию о файле

Описание

array stat ( string $filename )

Собирает статистическую информацию о файле filename. Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке.

Функция lstat() индентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Формат результата работы функций stat() и fstat()
Числовой Ассоциативный (начиная с PHP 4.0.6) Описание
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-байтных блоков **
* В Windows это всегда будет 0.

** Доступен только на системах, поддерживающих тип st_blksize - другие системы (например, Windows) вернут -1.

В случае ошибки stat() возвращает FALSE.

Замечание: Так как тип integer в PHP является целым числом со знаком и многие платформы используют 32-х битные целые числа, то некоторые функции файловых систем могут возвращать неожиданные результаты для файлов размером больше 2ГБ.

Ошибки

В случае ошибки будет сгенерирована ошибка уровня E_WARNING.

Список изменений

Версия Описание
4.0.6 Кроме возможности получения доступа к любому атрибуту в числовом массиве, его можно также получить по ассоциативному ключу, который указан напротив каждого параметра.

Примеры

Пример #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).

Смотрите также


Файловая система
PHP Manual