一尘不染

如何在PHP中获得文件扩展名?

php

这是一个您可以在网上到处阅读的各种问题,并有各种答案:

$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];

等等

但是,总有“最佳方法”,它应该在堆栈溢出中。


阅读 297

收藏
2020-05-26

共1个答案

一尘不染

来自其他脚本语言的人们总是认为自己的语言更好,因为他们具有内置功能而不是PHP(我现在正在研究Pythonistas :-)。

实际上,它确实存在,但是很少有人知道。相约pathinfo()

$ext = pathinfo($filename, PATHINFO_EXTENSION);

这是快速且内置的。pathinfo()可以根据传递给它的常量为您提供其他信息,例如规范路径。

请记住,如果您希望能够处理非ASCII字符,则需要先设置语言环境。例如:

setlocale(LC_ALL,'en_US.UTF-8');

另外,请注意,这没有考虑文件内容或mime类型,您只能获得扩展名。但这就是您要的。

最后,请注意,这仅适用于文件路径,不适用于使用PARSE_URL覆盖的URL资源路径。

请享用

2020-05-26