从变量等文件名获取扩展名

时间:2011-06-12 07:45:29

标签: php file-extension

  

可能重复:
  How to extract a file extension in PHP?

我有变量$filename="filename.ext"$filename="filena.m.e.ext"等等。如何从变量/字符串中提取扩展名(此处ext)?变量可能会改变或者可能有多个点。在这种情况下,我想得到最后一个点之后的部分..

6 个答案:

答案 0 :(得分:58)

请参阅answer

$ext = pathinfo($filename, PATHINFO_EXTENSION);

答案 1 :(得分:4)

你可以定义一个这样的函数:

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);
}

或者您可以使用PHP内置的Spl_FileInfo对象

答案 2 :(得分:4)

您可以使用路径信息查询。

$info = pathinfo($file);

,其中

$info['extension']

包含扩展名

答案 3 :(得分:3)

您想使用正则表达式:

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

您可以测试here,看看它是否能为您提供所需的结果。

答案 4 :(得分:2)

有很多方法可以做到这一点,例如使用explode()或使用preg_match和其他方法。

但我这样做的方式是with pathinfo

$path_info = pathinfo($filename);

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

答案 5 :(得分:0)

你可以使用。来爆炸字符串,然后取最后一个数组项:

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

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