Функция собирает вместе всю информацию, выдаваемую операционной системой для указанного файла, и возвращает ее в виде массива.
Синтаксис:
Array stat(string $filename)
Этот массив всегда содержит следующие элементы с указанными ключами:
0 - устройство;
1 - Номер узла inode;
2 - атрибуты защиты файла;
3 - число синонимов ("жестких" ссылок) файла;
4 - идентификатор uid владельца;
5 - идентификатор gid группы;
6 - тип устройства;
7 - размер файла в байтах;
8 - время последнего доступа в секундах, прошедших с 1 января 1970 года;
9 - время последней модификации содержимого файла;
10 - время последнего изменения атрибутов файла;
11 - размер блока;
12 - число занятых блоков;
Этот массив помещает информацию, которая доступна в системах Unix. Под Windows многие поля могут быть пусты.
Если $filename задает не имя файла, а имя символической ссылки, то всетаки будет возвращена информация о том файле, на который ссылается эта ссылка (а не о ссылке).
fileinode()
Получить номер inode файла (PHP 3, PHP 4, PHP 5)
Описание:
Int fileinode (string filename)
Функция возвращает номер inode файла или FALSE в случае возникновения ошибки.
Замечание
fileowner()
Получить идентификатор владельца файла (PHP 3, PHP 4, PHP 5)
Описание:
Int fileowner (string filename)
Функция возвращает числовой идентификатор владельца указанного файла или FALSE в случае возникновения ошибки. Чтобы получить имя владельца в виде строки, используйте функцию posix_getpwuid().
Замечание : Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url.
fileperms()
Получить информацию о правах на файл (PHP 3, PHP 4, PHP 5)
Описание:
Int fileperms (string filename)
Функция возвращает информацию о правах на указанный файл или FALSE в случае возникновения ошибки.
Замечание : Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в Прил. M.
Вывод прав в восмеричном представлении
echo substr(sprintf("%o", fileperms("/tmp")), -4);
echo substr(sprintf("%o", fileperms("/etc/passwd")), -4);
?>
Это выведет:
1777
0644
Вывод полной информации о правах
$perms = fileperms("/etc/passwd");
if (($perms & 0xC000) == 0xC000) {
// Сокет
$info = "s";
} elseif (($perms & 0xA000) == 0xA000) {
// Символическая ссылка
$info = "l";
} elseif (($perms & 0x8000) == 0x8000) {
// Обычный
$info = "-";
} elseif (($perms & 0x6000) == 0x6000) {
// Специальный блок
$info = "b";
} elseif (($perms & 0x4000) == 0x4000) {
// Директория
$info = "d";
} elseif (($perms & 0x2000) == 0x2000) {
// Специальный символ
$info = "c";
} elseif (($perms & 0x1000) == 0x1000) {
// Поток FIFO
$info = "p";
} else {
// Неизвестный
$info = "u";
}
// Владелец
$info .= (($perms & 0x0100) ? "r" : "-");
$info .= (($perms & 0x0080) ? "w" : "-");
$info .= (($perms & 0x0040) ?
(($perms & 0x0800) ? "s" : "x") :
(($perms & 0x0800) ? "S" : "-"));
// Группа
$info .= (($perms & 0x0020) ? "r" : "-");
$info .= (($perms & 0x0010) ? "w" : "-");
$info .= (($perms & 0x0008) ?
(($perms & 0x0400) ? "s" : "x") :
(($perms & 0x0400) ? "S" : "-"));
// Мир
$info .= (($perms & 0x0004) ? "r" : "-");
$info .= (($perms & 0x0002) ? "w" : "-");
$info .= (($perms & 0x0001) ?
(($perms & 0x0200) ? "t" : "x") :
(($perms & 0x0200) ? "T" : "-"));
echo $info;
?>
Результат:
R--r--r--
fnmatch()
Совпадает ли имя файла с шаблоном (PHP 4 >= 4.3.0, PHP 5)
Описание:
Bool fnmatch (string pattern, string string [, int flags])
fnmatch() проверяет, совпадает ли переданный параметр string с указанным шаблоном подстановок оболочки (shell wildcard) pattern.
Эта функция полезна при рабоде с именами файлов, хотя может быть использована и на обычной строке. Среднестатистический пользователь знаком с подстановками оболочки, как минимум в их простейшей форме из подстановок "?" и "*", так что использование fnmatch() вместо ereg() или preg_match() для поиска в пользовательской части сайта может быть намного удобнее для пользователей, не знакомых с регулярными выражениями.
Проверяет, соответствует ли цвет шаблону подстановок оболочки.
if (fnmatch("*gry", $color)) {
echo "some form of gray ...";
}
?>
На данный момент эта функция недоступна в Windows и других POSIX-несовместимых системах.
Получает информацию о файле используя открытый файловый указатель (PHP 4, PHP 5)
Описание:
Array fstat (resource handle)
Собирает статистическую информацию о открытом файле по файловому указателю handle. Эта функция похожа на stat(), за исключением того, что она работает с открытым файловым указателем, а не именем файла.
Возвращает массив со статистической информацией на файл; формат массива подробно описан на странице описания функции stat().
Пример использования функции fstat()
// открываем файл
$fp = fopen("/etc/passwd", "r");
// собираем статистику
$fstat = fstat($fp);
// закрываем файл
fclose($fp);
// отображаем только ассоциативную часть
print_r(array_slice($fstat, 13));
Результатом выполнения данного примера будет что-то подобное:
Array
=> 771
=> 488704
=> 33188
=> 1
=> 0
=> 0
=> 0
=> 1114
=> 1061067181
=> 1056136526
=> 1056136526
=> 4096
=> 8
)
Замечание : Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.
is_writable()
Определяет, доступен ли файл для записи (PHP 4, PHP 5)
Описание:
Bool is_writable (string filename)
Возвращает TRUE, если файл filename существует и доступен для записи. Аргумент filename может быть именем директории, что позволяет вам проверять директории на доступность для записи.
Не забывайте, что PHP может обращаться к файлу от имени того пользователя, от которого запущен веб-сервер (обычно "nobody"). Ограничения безопасного режима не принимаются во внимание.
Замечание : Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url
Получает информацию о файле или символической ссылке (PHP 3 >= 3.0.4, PHP 4, PHP 5)
Описание:
Array lstat (string filename)
Собирает статистику на файл или символическую ссылку с именем filename. Эта функция идентична функции stat(), за исключением того, что если filename является символической ссылкой, возвращается статус символической ссылки, а не того файла, на который она указывает.
Обратитесь к странице руководства функции stat() для получения информации о структуре массива, который возвращает lstat().
Замечание : Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url.
fileatime
Возвращает время последнего доступа к файлу.
Синтаксис:
Int fileatime(string filename)
Если файл не обнаружен, возвращает false.
Атрибут времени последнего доступа к файлу изменяется каждый раз, когда данные файла читаются. Так как это сильно снижает производительность при интенсивной работе с файлами и каталогами, часто изменение этого атрибута в операционных системах блокируют, и тогда функция бесполезна.
filemtime
Возвращает время последнего изменения файла или false в случае отсутствия файла.
Синтаксис:
Int filemtime(string $filename)
filectime
Возвращает время создания файла.
Синтаксис:
Int filectime(string $filename)
filesize
Возвращает размер файла в байтах или false, если файла не существует.
Синтаксис:
Int filesize(string $filename)
Устанавливает время модификации.
Синтаксис:
Int touch(string $filename [, int $timestamp])
Устанавливает время модификации указанного файла $filename равным $timestamp (в секундах, прошедших с 1 января 1970 года).
Если второй параметр не указан, то подразумевается текущее время. В случае ошибки возвращает false.
Если файл с указанным именем не существует, он создается пустым.
Изменяет режим доступа к файлу или каталогу(PHP3, PHP4, PHP5)
Описание:
Bool chmod (string filename, int mode)
Осуществляет попытку изменения режима доступа файла или каталога, переданного в параметре filename на режим, переданный в параметре mode.
Обратите внимание, что значение параметра mode не переводится автоматически в восьмеричную систему счисления, поэтому строки (такие, как, например, "g+w") не будут работать должным образом. Чтобы удостовериться в том, что режим был установлен верно, предваряйте значение, передаваемое в параметре mode, нулем (0):
chmod("/somedir/somefile", 755); // десятичное, неверный способ
chmod("/somedir/somefile", "u+rwx,go+rx"); // строка, неверный способ
chmod("/somedir/somefile", 0755); // восьмеричное, верный способ
?>
Значение параметра mode состоит из трех восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путем суммирования значений, определяющих права:
1 - доступ на выполнение,
2 - доступ на запись,
4 - доступ на чтение.
Более подробно о системе прав в системах Unix вы можете узнать с помощью команд "man 1 chmod" and "man 2 chmod".
//Доступ на запись и чтение для владельца, нет доступа для других
chmod("/somedir/somefile", 0600);
// Доступ на запись и чтение для владельца, доступ на чтение для других
chmod("/somedir/somefile", 0644);
// Полный доступ для владельца, доступ на чтение и выполнение для других
chmod("/somedir/somefile", 0755);
// Полный доступ для владельца, доступ на чтение и выполнение для группы владельца
chmod("/somedir/somefile", 0750);
?>
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Замечание: Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что этот пользователь будет отличаться от пользователя, под именем которого вы получаете доступ к командной оболочке или учетной записи FTP.
Замечание: Эта функция не применима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Замечание: Когда безопасный режим включён, PHP проверяет имеет ли файл или директория, с которой вы работаете, такой же UID, как и выполняемый скрипт. Кроме того, вы не можете устанавливать SUID, SGID и "липкие" биты.
Любое программное обеспечение, которое вы хотите запустить на вашем веб сервере имеет определенные требования, которым он должен соответствовать. К примеру, для WordPress требуется PHP версии 5.2.4 и выше. В зависимости от сервера вы можете изменять некоторые настройки PHP, другие наоборот изменять запрещено, однако, о них всех можно получить информацию в файле phpinfo. В этом руководстве вы узнаете, как создать файл phpinfo и узнать значения и статус PHP модулей. Это также может быть полезно для получения информации о вашем хостинг аккаунте, такой как max_execution_time, memory_limit, post_max_size и другой.
Перед тем, как вы начнете это руководство, вам понадобится следующее:
- Доступ к контрольной панели вашего хостинга или FTP аккаунту
Вариант 1 - Проверка информации о PHP через панель управления хостинга
В Hostinger, информация о PHP вашего аккаунта может быть найдена в разделе Дополнительно → Информация о PHP . Это является очень удобной функцией, так как вам не надо будет создавать дополнительных файлов на вашем хостинге.
После этого, вы переместитесь на страницу со всей необходимой информацией о вашей версии PHP, модулях и значениях. Для поиска конкретного модуля или функции воспользуйтесь поиском, нажав сочетание клавиш CTRL+F .
Поздравляем! Вы узнали, как получить доступ к информации о вашем php через панель управления Hostinger.
Вариант 2 - Проверка информации о PHP с помощью создания файла phpinfo.php
Не волнуйтесь, если ваша хостинговая платформа не поддерживает функцию показанную в Варианте 1 . Того же результата можно достичь создав специальный файл внутри вашего хостинг аккаунта. Файл также покажет всю информацию о вашем PHP и будет доступен через браузер.
Шаг 2.1 - Создание файла phpinfo
Существует несколько путей для создания файла phpinfo. В этом руководстве мы будем использовать для этого . Однако тот же результат может быть достигнут созданием файла на вашем локальном компьютере и дальнейшей загрузке файла на сервер через .
Войдите в панель управления вашего хостинга и откройте Файловый менеджер . Нажмите кнопку Новый файл для создания нового файла.
В первом поле укажите путь где будет создан новый файл. Далее, в поле Новое имя файла введите phpinfo.php . В большинстве случаев вы можете оставить путь без изменений /public_html . В этом случае файл будет создан в корневом каталоге вашего сайта.
Шаг 2.2 - Редактирование файла
На этом этапе у вас уже имеется пустой файл phpinfo.php в каталоге public_html . Скопируйте следующий код в файл и нажмите иконку Сохранить в левом углу экрана.
Вот и все, вы успешно создали PHP файл, который отобразит все параметры вашего PHP. Как уже упоминалось ранее, тот же результат может быть достигнут с помощью :
- Используйте любой текстовый редактор и создайте файл phpinfo.php на вашем компьютере.
- Добавьте следующий код в файл:
- Загрузите файл используя FTP в ваш каталог public_html .
Шаг 2.3 - Проверка информации о PHP через браузер
Если все было сделано правильно, то теперь вы можете получить доступ к созданному файлу, добавив в конец вашего доменного имени /p hpinfo.php . К примеру, http://вашдомен.ru/phpinfo.php
Вы должны увидеть похожий результат при открытии этой страницы через браузер:
На этой странице вы сможете увидеть все настройки вашего PHP.
Заключение
Закончив данное руководство вы научились, как создать файл phpinfo и проверить информацию о ваших настройках PHP. Данная информация является полезной, если вы хотите узнать настройки вашего хостинга или запустить программное обеспечение, которое требует наличия определенных PHP модулей.
array stat (string filename)Собирает статистическую информацию о файле filename . Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке. Функция lstat() индентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.
В случае ошибки, stat() вернёт FALSE . Также она выдаст предупреждение.
Возвращает массив статистической информации о файле. Массив включает следующие элементы. Индексация начинается с нуля. Также доступ к любому аттрибуту можно получить по ассоциативному ключу, который указан напротив каждого параметра; эта возможность появилась начиная с версии PHP 4.0.6:
Числовой | Ассоциативный (начиная с 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 | количество используемых блоков |
* - доступен только на системах, поддерживающих тип st_blksize -- другие системы (например Windows) вернут -1.
(PHP 3, PHP 4, PHP 5)
stat - Получает информацию о файлеОписание
array stat (string filename)Собирает статистическую информацию о файле filename. Если filename является символической ссылкой, информация собирается о самом файле, а не ссылке. Функция lstat() индентична функции stat() за исключением того, что в данном случае она вернёт информацию о самой символической ссылке.
В случае ошибки, stat() вернёт FALSE . Также она выдаст предупреждение.
Возвращает массив статистической информации о файле. Массив включает следующие элементы. Индексация начинается с нуля. Также доступ к любому аттрибуту можно получить по ассоциативному ключу, который указан напротив каждого параметра; эта возможность появилась начиная с версии PHP 4.0.6:
Таблица 1. Формат результата работы функций stat() и fstat()
* - доступен только на системах, поддерживающих тип st_blksize, другие системы (например Windows) вернут -1.Подсказка: Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat() , смотрите в
PHP
file_exists("test.txt")//Существует ли файл? filesize("test.txt");//Узнаем размер файла //Возвращается временная метка: fileatime("test.txt");//Дата последнего обращения к файлу //date("d M Y", $atime); filemtime("test.txt");//Дата изменения файла //date("d M Y", $mtime); filectime("test.txt");//Дата создания файла(Windows) //date("d M Y", $ctime);Файлы: режимы работы
PHP
resource fopen (string filename, string mode) // resource - возвращает указатель на файл в случае успешной работы, или FALSE в случае ошибкиРежим работы | Описание |
---|---|
r | открыть файл только для чтения; |
r+ | открыть файл для чтения и записи; |
w | открыть файл только для записи. Если он существует, то текущее содержимое файла уничтожается. Текущая позиция устанавливается в начало; |
w+ | открыть файл для чтения и для записи. Если он существует, то текущее содержимое файла уничтожается. Текущая позиция устанавливается в начало; |
а | открыть файл для записи. Текущая позиция устанавливается в конец файла; |
а+ | открыть файл для чтения и записи. Текущая позиция устанавливается в конец файла; |
b | обрабатывать бинарный файл. Этот флаг необходим при работе с бинарными файлами в ОС Windows. |
Открытие и закрытие файлов в PHP
PHP
$fi = fopen("test.html", "w+") or die("Ошибка"); //Примеры $fi = fopen("http://www.you/test.html","r"); $fi = fopen("http://ftp.you/test.html", "r"); //Закрываем fclose($fi)Чтение файлов в PHP
PHP
//Читаем файл fread(int fi, int length) $str = fread($fi, 5); // Читаем первые 5 символов echo $str; // так как курсор передвинулся $str = fread($fi, 12); // Читаем следующие 12 символов echo $str; fgets(int fi[, int length]) // Прочитать строку из файла fgetss(int fi, int length [, string allowable]) // Прочитать строку из файла и отбросить HTML-теги // string allowable - теги, которые необходимо оставить fgetc(int fi) //Считывает символ из файлаИзначально Запись будет происходить в начало файла, путем перезаписывания существующих данных, если они есть. Поэтому, если вам нужно записать что-то в конец файла, нужно установить соответствующий режим чтения , например, a+ .