САМОУЧИТЕЛЬ PHP 4

Определение типа файла


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 проходит некоторое время, в течение которого другой процесс может "вклиниться"

и "подменить" используемый нами файл. Сейчас это все кажется маловероятным, но данная проблема выходит на передний план при написании сценария счетчика. Мы еще остановимся на ней чуть позже.

string filetype(string $filename)

Возвращает строку, которая описывает тип файла с именем $filename. Если такого файла не существует, возвращает false. После вызова строка будет содержать одно из следующих значений:

r



file — обычный файл;

r    dir — каталог;

r    link — символическая ссылка;

r    fifo — fifo-канал;

r    block — блочно[E67] -ориентированное устройство;

r    char — символьно-ориентированное устройство;

r    unknown — неизвестный тип файла.

Рассматриваемые ниже несколько функций представляют собой лишь надстройку для функции filetype(). В большинстве случаев они очень полезны, и пользоваться ими удобнее, чем последней.

bool is_file(string $filename)

Возвращает true, если $filename — обычный файл.

bool is_dir(string $filename)

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

bool is_link(string $filename)

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



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