发布日期:2018-03-26
在PHP中如何获取文件扩展名?+ 查看更多
在PHP中如何获取文件扩展名?
+ 查看更多
发布日期:2017-03-28 16:11
分类:PHP
浏览次数:88
这个问题你可以在网上各处看到各种不一样的答案:
$ext = end(explode('.', $filename));
$ext = substr(strrchr($filename, '.'), 1);
$ext = substr($filename, strrpos($filename, '.') + 1);
$ext = preg_replace('/^.*.([^.]+)$/D', '$1', $filename);
$exts = split("[/\.]", $filename);
$n = count($exts)-1;
$ext = $exts[$n];
但是,我相信还有“最好的办法” :) 如果没有的话,也没关系,至少我问过了。
回答
用其他脚本语言的人总是认为他们的方法更好,因为他们有内置的函数而PHP没有(我现在在看pythonistas)事实上,PHP中的确有这种方法,只不过很少有人知道,就是这个 pathinfo():
$ext = pathinfo($filename, PATHINFO_EXTENSION);
这个方式很快而且是内置的,pathinfo()可以给你其他信息,比如根据你传递给他的常量来规范路径。记住,如果你想要能够处理非ASCII字符,你首先需要设置语言环境,例如:
setlocale(LC_ALL,'en_US.UTF-8');
还要注意,这不考虑文件内容或mimetype,你只能获得扩展名,但你需要的就是这个。
最后提醒一下,这个工作只针对文件路径,而不是被PARSE_URL覆盖的URL资源路径。