It should be a bit more savely to remove slashes first:
$ext = array_pop(split('.', str_replace(array("\\", "/"), array("", ""), $filename)));
filetype
(PHP 4, PHP 5)
filetype — Gets file type
Description
string filetype
( string $filename
)
Returns the type of the given file.
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.
Examples
Example #1 filetype() example
<?php
echo filetype('/etc/passwd'); // file
echo filetype('/etc/'); // 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 List of Supported Protocols/Wrappers for a listing of which wrappers support stat() family of functionality.
filetype
st dot brinkmann at googlemail dot com
03-Apr-2008 08:33
03-Apr-2008 08:33
rich dot fleming at NOSPAM dot gmail dot com
26-Feb-2008 03:08
26-Feb-2008 03:08
In response to zachary.s.scott[at]gmail[dot]com.
A simplified method would be to pop the last element off the array as that one will be your extension.
<?php
$file = "/some/path/to/your.file_stored_here.txt";
$extension = array_pop(explode(".", $file));
?>
$extension = 'txt'
you could further use this with basename to strip off the extension completely off the file...
<?php
$file = "/some/path/to/your.file_stored_here.txt";
$extension = array_pop(explode(".", $file));
$filename = basename($file, ".$extension");
?>
$extension = 'txt'
$filename = 'your.file_stored_here'
zachary.s.scott[at]gmail[dot]com
14-Jan-2008 04:15
14-Jan-2008 04:15
I find that if you're trying to get the extension of a file, this method isn't the what you want. I've written a function instead:
<?php
function fileExtension($file) {
$fileExp = explode('.', $file); // make array off the periods
$filetype = $fileExp[count($fileExp) -1]; // file extension will be last index in array, -1 for 0-based indexes
}
?>
ruach at chpc dot utah dot edu
11-Mar-2004 01:11
11-Mar-2004 01:11
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
