There are 7 values that can be returned. Here is a list of them and what each one meansblock: block special devicechar: character special devicedir: directoryfifo: FIFO (named pipe)file: regular filelink: symbolic linkunknown: unknown file type
(PHP 4, PHP 5, PHP 7, PHP 8)
filetype — Возвращает тип файла
filename
Путь к файлу.
Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file, socket и unknown.
Возвращает false
в случае возникновения ошибки. filetype()
также вызовет ошибку уровня E_NOTICE
, если
системный вызов stat завершится ошибкой или тип файла неизвестен.
В случае неудачного завершения работы генерируется ошибка уровня E_WARNING
.
Пример #1 Пример использования функции filetype()
<?php
echo filetype('/etc/passwd');
echo "\n";
echo filetype('/etc/');
?>
Результат выполнения приведённого примера:
file dir
Замечание: Результаты функции кешируются. Подробнее о кешировании рассказывает описание функции clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обёртками url. Список обёрток, поддерживаемых семейством функций stat(), смотрите в разделе Протоколы и обёртки.
There are 7 values that can be returned. Here is a list of them and what each one meansblock: block special devicechar: character special devicedir: directoryfifo: FIFO (named pipe)file: regular filelink: symbolic linkunknown: unknown file type
filetype() does not work for files >=2GB on x86 Linux. You can use stat as a workarround:$type=trim(`stat -c%F $file`);Note that stat returns diffenerent strings ("regular file","directory",...)
I use the CLI version of PHP on Windows Vista. Here's how to determine if a file is marked "hidden" by NTFS:<?phpfunction is_hidden_file($fn) { $attr = trim(exec('FOR %A IN ("'.$fn.'") DO @ECHO %~aA')); if($attr[3] === 'h') return true; return false;}?>Changing <?php if($attr[3] === 'h') ?> to <?php if($attr[4] === 's') ?> will check for system files.This should work on any Windows OS that provides DOS shell commands.