(PHP 4, PHP 5, PHP 7, PHP 8)
filetype — Gets file type
filename
Path to the file.
Returns the type of the file. Possible values are fifo, char, dir, block, link, file, socket and unknown.
Returns false
if an error occurs. filetype() will also
produce an E_NOTICE
message if the stat call fails
or if the file type is unknown.
Upon failure, an E_WARNING
is emitted.
Example #1 filetype() example
<?php
echo filetype('/etc/passwd');
echo "\n";
echo filetype('/etc/');
?>
The above example will output:
file dir
Note: The results of this function are cached. See clearstatcache() for more details.
As of PHP 5.0.0, this function can also be used with some URL wrappers. Refer to Supported Protocols and Wrappers to determine which wrappers support stat() family of functionality.
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
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:
<?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.