这是一个您可以在网络上随处阅读的问题,并提供各种答案:
$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];
等等
然而,总有“最好的方法”,它应该在 Stack Overflow。
原文由 e-satis 发布,翻译遵循 CC BY-SA 4.0 许可协议
来自其他脚本语言的人总是认为他们的更好,因为他们有一个内置函数可以做到这一点,而不是 PHP(我现在正在看 Pythonistas :-))。
事实上,它确实存在,但很少有人知道。遇见
pathinfo()
:这是快速且内置的。
pathinfo()
可以为您提供其他信息,例如规范路径,具体取决于您传递给它的常量。请记住,如果您希望能够处理非 ASCII 字符,则需要先设置语言环境。例如:
另外,请注意,这不考虑文件内容或 mime 类型,您只会获得扩展名。但这是你要求的。
最后,请注意这仅适用于文件路径,而不适用于使用 PARSE_URL 涵盖的 URL 资源路径。
享受