我已经创建了一个函数,到目前为止,无论文件名有多奇怪,到目前为止它似乎都非常擅长获取文件扩展名。我在网上遇到的每一种方法似乎都喜欢使用爆炸。获取扩展名,但如果文件名中有多个.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 ;
}
我是重新发明一个轮子还是可以提高效率?
答案 0 :(得分: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
?>
答案 1 :(得分:0)
我认为这稍微清晰一点:
$filename = 'myfile.jpg';
$extension = substr($filename, strrpos($filename,'.') +1 )
Exploding创建了一个新数组,并且通常会有更多“工作”。
答案 2 :(得分:0)
您也可以这样做。
echo substr(strrchr('file.txt','.'),1);