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 typefiletype
(PHP 4, PHP 5, PHP 7, PHP 8)
filetype — Gets file type
Parameters
filename-
Path to the file.
Return Values
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.
Errors/Exceptions
Upon failure, an E_WARNING is emitted.
Examples
Example #1 filetype() example
<?php
echo filetype('/etc/passwd');
echo "\n";
echo filetype('/etc/');
?>The above example will output:
file dir
Notes
Note: The results of this function are cached. See clearstatcache() for more details.
Tip
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.
See Also
- is_dir() - Tells whether the filename is a directory
- is_file() - Tells whether the filename is a regular file
- is_link() - Tells whether the filename is a symbolic link
- file_exists() - Checks whether a file or directory exists
- mime_content_type() - Detect MIME Content-type for a file
- pathinfo() - Returns information about a file path
- stat() - Gives information about a file
+add a note
User Contributed Notes 3 notes
ruach at chpc dot utah dot edu ¶
22 years ago
adlerweb ¶
15 years ago
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",...)
7r6ivyeo at mail dot com ¶
17 years ago
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.