Справочник по PHP

Функции для определения типов файлов


file_exists

Проверяет существование вызываемого файла.

Синтаксис :

bool file_exists(string filename)

Возвращает true, если файл с именем filename существует на момент вызова. Следует использовать эту функцию с осторожностью. Например, следующий код никуда не годится с точки зрения безопасности:

$fname="/etc/passwd";if(!file_exists($fname))  $f=fopen($fname,"w");else  $f=fopen($fname,"r");

Дело в том, что между вызовом file_exists() и открытием файла в режиме w проходит некоторое время, в течение которого другой процесс может вклиниться и подменить используемый нами файл. Данная проблема выходит на передний план при написании сценария счетчика.

Функция не работает с удаленными файлами, файл должен находиться в доступной для сервера файловой системе.

Результаты функции кэшируются, см. функцию clearstatcache().

filetype

Возвращает тип файла.

Синтаксис :

string filetype(string filename)



Возвращает строку, которая описывает тип файла с именем filename. Если такого файла не существует, возвращает false.

После вызова строка будет содержать одно из следующих значений:

file    - обычный файл;dir     - каталог;link    - символическая ссылка;fifo    - fifo-канал;block   - блочно-ориентированное устройство;char    - символьно-ориентированное устройство;unknown - неизвестный тип файла;

is_file

Проверка существования обычного файла.

Синтаксис :

bool is_file(string filename)

Возвращает true, если filename

- обычный файл.

is_dir

Проверка существования каталога.

Синтаксис :

bool is_dir(string filename)

Возвращает true, если каталог filename существует.

is_link

Проверка существования символической ссылки на файл.

Синтаксис :

bool is_link(string filename)

Возвращает true, если filename - символическая ссылка.

Функция не работает под Windows.

is_readable

Проверка существования файла, доступного для чтения.

Синтаксис :

bool is_readable(string filename)


Возвращает true, если файл может быть открыт для чтения.

Обычно PHP осуществляет доступ к файлу с привелегиями пользователя, запускающего web-сервер (часто "nobody"). Соображения безопасности должны приниматься в расчет.

is_writeable

Проверка существования файла, доступного для записи.

Синтаксис :

bool is_writeable(string filename)

Возвращает true, если в файл можно писать.

Обычно PHP осуществляет доступ к файлу с привелегиями пользователя, запускающего web-сервер (часто "nobody"). Соображения безопасности должны приниматься в расчет.

is_executable

Проверка существования запускаемого файла.

Синтаксис :

bool is_executable(string filename)

Возвращает true, если файл filename - исполняемый.

is_uploaded_file

Проверка существования файла, загруженного методом HTTP POST.

Синтаксис :

bool is_uploaded_file(string filename)

Возвращает true, если файл с именем filename был загружен на сервер посредством HTTP POST.

Часто это полезно, чтобы убедиться, что пользователи из злого умысла не пытались заставить сценарий работать с теми файлами, с которыми им работать не следует, например: /etc/passwd.


Содержание раздела