Подтвердить что ты не робот

Получить расширение из имени файла, такого как переменная

Возможный дубликат:
Как извлечь расширение файла в PHP?

У меня есть переменная $filename="filename.ext" или $filename="filena.m.e.ext" или так далее. Как я могу извлечь расширение (здесь ext) из переменной /string? Переменная может измениться или может иметь более одной точки. В этом случае я хочу получить деталь после последней точки.

4b9b3361

Ответ 1

см. ответ :

$ext = pathinfo($filename, PATHINFO_EXTENSION);

Ответ 2

вы можете определить такую ​​функцию:

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

Ответ 3

Вы можете использовать запрос информации о пути.

$info = pathinfo($file);

где

$info['extension']

содержит расширение

Ответ 4

Вы хотите использовать регулярное выражение:

preg_match('/\.([^\.]+)$/', $filename);

Вы можете протестировать его здесь, чтобы узнать, доставит ли он вам результат, который вы хотите получить.

Ответ 5

Существует много способов сделать это, например, с помощью explode() или с preg_match и другими.

Но способ, которым я это делаю, с pathinfo:

$path_info = pathinfo($filename);

echo $path_info['extension'], "\n";

Ответ 6

Вы можете взорвать строку, используя., затем взять последний элемент массива:

$filename = "file.m.e.ext";
$filenameitems = explode(".", $filename);

echo $filenameitems[count($filenameitems) - 1]; // .ext
// or echo $filenameitem[-1];