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 01:33
03-Apr-2008 01:33
rich dot fleming at NOSPAM dot gmail dot com
25-Feb-2008 08:08
25-Feb-2008 08: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
13-Jan-2008 09:15
13-Jan-2008 09: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
10-Mar-2004 06:11
10-Mar-2004 06: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
