Ответ 1
см. ответ :
$ext = pathinfo($filename, PATHINFO_EXTENSION);
Возможный дубликат:
Как извлечь расширение файла в PHP?
У меня есть переменная $filename="filename.ext"
или $filename="filena.m.e.ext"
или так далее. Как я могу извлечь расширение (здесь ext
) из переменной /string? Переменная может измениться или может иметь более одной точки. В этом случае я хочу получить деталь после последней точки.
см. ответ :
$ext = pathinfo($filename, PATHINFO_EXTENSION);
вы можете определить такую функцию:
function get_file_extension($filename)
{
/*
* "." for extension should be available and not be the first character
* so position should not be false or 0.
*/
$lastDotPos = strrpos($fileName, '.');
if ( !$lastDotPos ) return false;
return substr($fileName, $lastDotPos+1);
}
или вы можете использовать объект Spl_FileInfo, встроенный в PHP
Вы можете использовать запрос информации о пути.
$info = pathinfo($file);
где
$info['extension']
содержит расширение
Вы хотите использовать регулярное выражение:
preg_match('/\.([^\.]+)$/', $filename);
Вы можете протестировать его здесь, чтобы узнать, доставит ли он вам результат, который вы хотите получить.
Существует много способов сделать это, например, с помощью explode() или с preg_match и другими.
Но способ, которым я это делаю, с pathinfo:
$path_info = pathinfo($filename);
echo $path_info['extension'], "\n";
Вы можете взорвать строку, используя., затем взять последний элемент массива:
$filename = "file.m.e.ext";
$filenameitems = explode(".", $filename);
echo $filenameitems[count($filenameitems) - 1]; // .ext
// or echo $filenameitem[-1];