PHP 获取文件扩展名的正确方法
直接给最终正确答案
echo pathinfo('/www/htdocs/your_image.jpg', PATHINFO_EXTENSION);
错误写法:
你可能会这样写
function get_file_extension($file_name) {
return substr(strrchr($file_name,'.'),1);
}
return substr(strrchr($file_name,'.'),1);
}
或这样写
function file_extension($filename) {
return end(explode(".", $filename));
}
return end(explode(".", $filename));
}
顺便看下pathinfo 干些什么
<?php
$file_path = pathinfo('/www/htdocs/your_image.jpg');
echo "$file_path ['dirname']\n";
echo "$file_path ['basename']\n";
echo "$file_path ['extension']\n";
echo "$file_path ['filename']\n"; // only in PHP 5.2+
?>
$file_path = pathinfo('/www/htdocs/your_image.jpg');
echo "$file_path ['dirname']\n";
echo "$file_path ['basename']\n";
echo "$file_path ['extension']\n";
echo "$file_path ['filename']\n"; // only in PHP 5.2+
?>
以上将输出
/www/htdocs
your_image.jpg
jpg
your_image
your_image.jpg
jpg
your_image
注意: pathinfo 支持第3个参数
* PATHINFO_DIRNAME - 目录
* PATHINFO_BASENAME - 文件名(含扩展名)
* PATHINFO_EXTENSION - 扩展名
* PATHINFO_FILENAME - 文件名(不含扩展名)
为了程序的向下兼容。php4.0.3早期版本没有pathinfo函数
fvzone 于 2010-03-22 15:57:20 回复:
你的是什么机器啊,还php4。。。
为什么说那是错误的写法?最多只能算效率没那么高的写法
是不是有什么其它弊端?
jjk 于 2011-09-08 20:55:42 回复:
/www/music/kevin.jpeg.mp3 -> jpeg.mp3
大哥,那
function file_extension($filename) {
return end(explode(".", $filename));
}这个呢。
我怎么怎么看怎么正确,而且觉得比你说的正确答案还简便优雅呢