- Не работает stat php
- Описание
- Список параметров
- Возвращаемые значения
- Ошибки
- Список изменений
- Примеры
- Примечания
- Смотрите также
- Не работает stat php
- Описание array stat ( string filename )
- Функция PHP stat (): сбой статистики для удаленного изображения
- 3 ответа
- 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() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.
Список параметров
Возвращаемые значения
| Числовой | Ассоциативный | Описание |
|---|---|---|
| 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 в восьмеричном виде | Значение |
|---|---|
| 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() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.
Список параметров
Возвращаемые значения
| Числовой | Ассоциативный | Описание |
|---|---|---|
| 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 вспомнить и описать другие организационные моменты
Ничего не выводится — только пустая белая страница.
Источник