第一种方法:

//字符串查找和截取的方法
$extension=substr(strrchr($file, '.'), 1);

第二种方法:

//字符串查找和截取的方法二
$extension=substr($file, strrpos($file, '.')+1);

第三种方法:

//数组分割的方法
$extension=end(explode('.', $file));

第四种方法:

//使用pathinfo直接解析的方法
$info = pathinfo($file);
$extension=$info['extension'];

第五种方法【】:

//使用pathinfo的第二个参数
$extension=pathinfo($file, PATHINFO_EXTENSION);

第六种方法【】:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$extension = finfo_file($finfo, $file) ;
echo $extension;
finfo_close($finfo);


简单对以上方法做一下评价:

首先第一、二种方法,不能处理路径中含有“.”但是文件没有扩展名的情况,比如说路径为/var/test.d/test情况下,就会出现错误的结果

接着看第三种方法:同样是如果文件没有扩展名(/var/test.d/test)或者路径中含有“.”(/var/test/test.txt)的情况,也会出现错误的结果

第四种方法虽然可以处理以上的情况,但是如果文件没有扩展名的话,会报一个错误

第五种方法虽然都不出错,但是如果文件没有扩展名,或者修改了扩展名就不能获取。

最后一种方法,对于文件的安全性进行检测是一个是很推荐的一个方法。