filetype

(PHP 4, PHP 5, PHP 7)

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

Описание

string filetype ( string $filename )

Возвращает тип указанного файла.

Список параметров

filename

Путь к файлу.

Возвращаемые значения

Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file, socket и unknown.

Возвращает FALSE в случае ошибки. filetype() также вызовет ошибку уровня E_NOTICE, если системный вызов stat завершится ошибкой или тип файла неизвестен.

Примеры

Пример #1 Пример использования функции filetype()

<?php

echo filetype('/etc/passwd');  // file
echo filetype('/etc/');        // dir

?>

Ошибки

В случае неудачного завершения работы генерируется ошибка уровня E_WARNING.

Примечания

Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().

Подсказка

Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми обертками url. Список оберток, поддерживаемых семейством функций stat(), смотрите в Поддерживаемые протоколы и обработчики (wrappers).

Смотрите также

  • is_dir() - Определяет, является ли имя файла директорией
  • is_file() - Определяет, является ли файл обычным файлом
  • is_link() - Определяет, является ли файл символической ссылкой
  • file_exists() - Проверяет наличие указанного файла или каталога
  • mime_content_type() - Определяет MIME-тип содержимого файла (устаревшее)
  • pathinfo() - Возвращает информацию о пути к файлу
  • stat() - Возвращает информацию о файле

Коментарии

There are 7 values that can be returned. Here is a list of them and what each one means

block: block special device

char: character special device

dir: directory

fifo: FIFO (named pipe)

file: regular file

link: symbolic link

unknown: unknown file type
2004-03-10 19:11:22
http://php5.kiev.ua/manual/ru/function.filetype.html
I use the CLI version of PHP on Windows Vista.  Here's how to determine if a file is marked "hidden" by NTFS:

<?php
function 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.
2008-11-21 19:29:09
http://php5.kiev.ua/manual/ru/function.filetype.html
Автор:
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",...)
2010-10-07 16:09:34
http://php5.kiev.ua/manual/ru/function.filetype.html
Автор:
Putting @ in front of the filetype() function does not prevent it from raising a warning (Lstat failed), if E_WARNING is enabled on your error_reporting.

The most common cause of filetype() raising this warning and not showing a filetype() in the output (it actually returns NULL) is, if you happened to pass just the 'Dir or File Name' and not the complete "Absolute or Relative Path" to that 'file or Dir'. It may still read that file and return its filetype as "file" but for Dir's it shows warning and outputs NULL.
eg:
$pathToFile = '/var/www';
$file = 'test.php';
$dir = 'somedir';

Output for filetype($file) will be returned as 'file' and possibly without any warning, but for filetype($dir), it will return NULL with the warning "Lstat failed", unless you pass a complete path to that dir, i.e. filetype($pathToFile.'/'.$dir).

This happened to me and found this solution after a lot of trial and error. Thought, it might help someone.
2011-06-08 03:01:12
http://php5.kiev.ua/manual/ru/function.filetype.html

    Поддержать сайт на родительском проекте КГБ