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 — Получить тип файла
Описание
Возвращает тип файла. Возможными значениями являются fifo, char, dir, block, link, file и unknown.
Возвращает FALSE в случае возникновения ошибки. filetype() также вызовет сообщение E_NOTICE при неудачной попытке получения информации о файле или если тип файла неизвестен.
Замечание: Результаты этой функции кэшируются. Более подробную информацию смотрите в разделе clearstatcache().
Начиная с PHP 5.0.0, эта функция также может быть использована с некоторыми упаковщиками url. Список упаковщиков, поддерживаемых семейством функций stat(), смотрите в List of Supported Protocols/Wrappers.
Пример #1 Пример использования функции filetype()
<?php
echo filetype('/etc/passwd'); // file
echo filetype('/etc/'); // dir
?>
См. также описание функций is_dir(), is_file(), is_link(), file_exists(), stat() и mime_content_type().
filetype
03-Apr-2008 12:33
25-Feb-2008 07: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'
13-Jan-2008 08: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
}
?>
10-Mar-2004 05: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
