第一种方法:
//字符串查找和截取的方法 $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
第四种方法虽然可以处理以上的情况,但是如果文件没有扩展名的话,会报一个错误
第五种方法虽然都不出错,但是如果文件没有扩展名,或者修改了扩展名就不能获取。
最后一种方法,对于文件的安全性进行检测是一个是很推荐的一个方法。