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 和 unknown。
如果出错则返回 false
。如果 stat 调用失败或者文件类型未知的话
filetype() 还会产生一个 E_NOTICE
消息。
失败时抛出 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.