Не работает stat php

Не работает stat php

(PHP 4, PHP 5, PHP 7)

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

Описание

Собирает статистическую информацию о файле filename . Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке. До PHP 7.4.0 в Windows NTS в данном случае строил статистику size , atime , mtime и ctime из символьной ссылки.

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

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

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

Формат результата работы функций stat() и fstat()

Числовой Ассоциативный Описание
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 .

*** В Windows, начиная с PHP 7.4.0, это серийный номер тома, содержащего файл, который представляет собой 64-разрядное целое число без знака, поэтому может переполниться в 32-разрядных системах. Ранее это было числовое представление буквы диска (например, 2 для C: ) для stat() и 0 для lstat() .

**** В Windows, начиная с PHP 7.4.0, идентификатор, связанный с файлом, который представляет собой 64-разрядное целое число без знака, может переполниться в 32-разрядных системах. Ранее он всегда был 0 .

Значение mode содержит информацию, читаемую несколькими функциями. При записи в восьмеричном виде, начиная справа, первые три цифры возвращаются функцией chmod() . Следующая цифра игнорируется PHP. Следующие две цифры указывают тип файла:

mode типов файлов
mode в восьмеричном виде Значение
0120000 символическая ссылка
0100000 обычный файл
0060000 блочное устройство
0040000 директория
0010000 fifo

Так, например, обычный файл может быть 0100644 , а директория может быть 0040755 .

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

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

Ошибки

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

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

Версия Описание
7.4.0 В Windows номер устройства теперь является серийным номером тома, содержащего файл и номер inode — это идентификатор, связанный с файлом.
7.4.0 Статистика символьных ссылок size , atime , mtime и ctime всегда соответствует статистике целевого объекта. Это было ранее не характерно для NTS сборки на Windows.

Примеры

Пример #1 Пример использования stat()

/* Получаем статистику файла */
$stat = stat ( ‘C:\php\php.exe’ );

/*
* Выводим последнее время доступа к файлу, это то же самое, что и
* вызов fileatime()
*/
echo ‘Последнее время доступа: ‘ . $stat [ ‘atime’ ];

/*
* Выводим время изменения файла, это то же самое, что и
* вызов filemtime()
*/
echo ‘Время изменения: ‘ . $stat [ ‘mtime’ ];

/* Выводим номер устройства */
echo ‘Номер устройства: ‘ . $stat [ ‘dev’ ];
?>

Пример #2 Использование информации из stat() вместе с touch()

/* Получаем статистику файла */
$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() , смотрите в разделе Поддерживаемые протоколы и обертки.

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

  • lstat() — Возвращает информацию о файле или символической ссылке
  • fstat() — Получает информацию о файле, используя открытый файловый указатель
  • filemtime() — Возвращает время последнего изменения файла
  • filegroup() — Получает идентификатор группы файла

Источник

Не работает stat php

(PHP 3, PHP 4, PHP 5)

stat — Получает информацию о файле

Описание array stat ( string filename )

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

В случае ошибки, stat() вернёт FALSE . Также она выдаст предупреждение.

Возвращает массив статистической информации о файле. Массив включает следующие элементы. Индексация начинается с нуля. Также доступ к любому аттрибуту можно получить по ассоциативному ключу, который указан напротив каждого параметра; эта возможность появилась начиная с версии PHP 4.0.6:

Таблица 1. Формат результата работы функций 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 timestamp)
9 mtime время последней модификации (Unix timestamp)
10 ctime время последнего изменения inode (Unix timestamp)
11 blksize размер блока ввода-вывода файловой системы *
12 blocks количество используемых блоков

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache() .

Подсказка: Начиная с PHP 5.0.0 , эта функция также может быть использована с некоторыми упаковщиками url.

Источник

Функция PHP stat (): сбой статистики для удаленного изображения

Существует множество похожие вопросы к этому, но все они связаны с выполнением stat () или размером файла ( ) на локальных файлах, которые не работают, потому что вам нужен полный путь.

Эта проблема другая, поскольку у меня есть несколько удаленных изображений с полными путями, и я до сих пор не могу получить их размер. Вот пример:

Это выдает ошибку, говорящую «stat fail». Я также не могу получить размер изображения с помощью функции filesize (), получая заголовки «Content-Length» или «X-Original-Content-Length» (которые не были переданы) или скручивая изображение и получая Поле CURLINFO_CONTENT_LENGTH_DOWNLOAD. Точно так же в Ruby я не могу получить размер этого изображения с помощью традиционных методов, за исключением Механизации библиотека, которая просто работает. Вот заголовки к изображению в примере:

3 ответа

Вы можете получить размер, выполнив:

Пока у вас включено allow_url_fopen , оно будет работать. В противном случае вам нужно будет использовать cURL.

Чтобы stat () определял размер файла для удаленного файла, соответствующая оболочка должна поддерживать stat из руководство по PHP:

Начиная с PHP 5.0.0, эта функция также может использоваться с некоторыми обёртками URL. Обратитесь к разделу «Поддерживаемые протоколы и оболочки», чтобы определить, какие оболочки поддерживают семейство функций stat ().

Если вы посмотрите обертку HTTP в документации:

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

Вы можете использовать curl для получения информации о файле, скажем, если вы хотите получить размер любого файла по любому URL, тогда используйте эту функцию:

Источник

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

(PHP 4, PHP 5, PHP 7)

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

Описание

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

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

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

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

Формат результата работы функций stat() и fstat()

Числовой Ассоциативный Описание
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 .

Примеры

Пример #1 Пример использования stat()

/* Получаем статистику файла */
$stat = stat ( ‘C:\php\php.exe’ );

/*
* Выводим последнее время доступа к файлу, это тоже самое, что и
* вызов fileatime()
*/
echo ‘Последнее время доступа: ‘ . $stat [ ‘atime’ ];

/*
* Выводим время изменения файла, это тоже самое, что и
* вызов filemtime()
*/
echo ‘Время изменения: ‘ . $stat [ ‘mtime’ ];

/* Выводим номер устройства */
echo ‘Номер устройства: ‘ . $stat [ ‘dev’ ];
?>

Пример #2 Использование информации из stat() вместе с touch()

/* Получаем статистику файла */
$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).

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

  • lstat() — Возвращает информацию о файле или символической ссылке
  • fstat() — Получает информацию о файле используя открытый файловый указатель
  • filemtime() — Возвращает время последнего изменения файла
  • filegroup() — Получает идентификатор группы файла

Источник

PHP код не выполняется / не работает / выводится в браузер / пустая белая страница

Достаточно часто у начинающих разработчиков встречаются проблемы с запуском PHP-кода. Симптомы и причины могут быть самые разнообразные. Ниже приведены наиболее часто встречающиеся симптомы и их возможные причины.

Вы открыли страницу/файл в браузере и увидели на странице PHP-код. Возможно, вперемешку с другими элементами страницы.
Либо вместо страницы файл «скачался», а в нём Вы увидели исходный код PHP.

Возможные причины:

  • Файл должен имет расширение .php (на всякий случай в нижнем регистре: .php , а не .PHP или .pHP ). На всякий случай проверьте также и язык ввода: буквы с имени должно быть латинскими (бывали случаи).
  • Страница должна запрашиваться через Веб-сервер , а не из папки напрямую. Поэтому в адресной строке браузера Вы должны видеть http:// , а не file:// (некоторые браузеры скрывают http:// , но file:// виден все равно).
  • Из предыдущего пункта следует: у Вас должен быть установлен и запущен веб-сервер (например, Apache или сборки Denwer, XAMPP и т.п.).
  • Веб-сервер должен быть настроен на обработку PHP кода. Если Вы используете сборки вроде Денвера, то этот пункт, вероятно, не актуален (хотя кто ж их знает).
  • PHP код должен быть обёрнут в PHP-теги: . Если вдруг Вы используете короткие теги или , то попробуйте заменить их на длинные: и соответственно.
  • TODO вспомнить и описать другие организационные моменты

Ничего не выводится — только пустая белая страница.

Источник

Читайте также:  Как настроить электронные часы g shock resist
Оцените статью