0

无论文件名多么奇怪,我已经制作了一个到目前为止似乎非常擅长获取文件扩展名的函数。我在网上遇到的每一种方法似乎都喜欢在 . 获取扩展名,但是如果文件名中有多个 .s 怎么办?

这是我的功能:

$fileName = 'my.reallyAwk-ward..file--name.JPEG' ;
echo getExtension($fileName) ;

function getExtension($fileName)
{
    $ext = explode('.', strrev($fileName), 2) ;
    $ext = strtolower(strrev($ext[0])) ;
    return $ext ;
}

我是在重新发明轮子还是可以提高效率?

4

3 回答 3

7
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');

echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n"; // since PHP 5.2.0
?>

来自http://php.net/manual/en/function.pathinfo.php

于 2012-08-05T11:50:03.477 回答
0

我认为这稍微干净一些:

$filename = 'myfile.jpg';
$extension = substr($filename, strrpos($filename,'.') +1 )

爆炸创建一个新数组,一般来说还有更多的“工作”。

于 2012-08-05T11:52:48.930 回答
0

你也可以这样做。

echo substr(strrchr('file.txt','.'),1);
于 2019-03-14T06:11:45.603 回答