当前位置: 首页 > 面试题库 >

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

吴城
2023-03-14
问题内容

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

$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 :-)。

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

$ext = pathinfo($filename, PATHINFO_EXTENSION);

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

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

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

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

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

请享用



 类似资料:
  • 问题内容: 我希望获取正在上传的图像的文件扩展名,但我只获得了一个数组。 有没有办法只是获得扩展本身? 问题答案: 无需使用字符串函数。您可以使用实际为您想要的东西设计的东西:

  • 本文向大家介绍php如何获取文件的扩展名,包括了php如何获取文件的扩展名的使用技巧和注意事项,需要的朋友参考一下 网上也有很多类似的方法,不过都存在这样那样的不严谨的问题,本文就不一一分析了,这里只给出最正确的利用php 获取文件扩展名(文件后缀名)的方法。 函数中用到了php内置函数pathinfo 这个函数,下面分析一下这个函数的意思和用法: 定义和用法 pathinfo() 函数以数组的形

  • 问题内容: 看到代码: 问题答案: 较新的编辑: 自从最初发布此问题以来,很多事情已经发生了变化-wallacer的修订后的答案以及VisioN的出色表现中有很多非常好的信息 编辑: 仅仅因为这是公认的答案;wallacer的答案确实好得多: 我的旧答案: 应该做。 编辑: 为了回应PhiLho的评论,请使用类似以下内容的内容:

  • 问题内容: 为了清楚起见,我不是在寻找MIME类型。 假设我有以下输入: 我想要一种分解此输入的方法,特别是扩展。有没有内置的方式可以做到这一点?我想避免编写自己的解析器。 问题答案: 在这种情况下,使用FilenameUtils.getExtension从Apache的百科全书IO 这是如何使用它的示例(你可以指定完整路径或仅指定文件名): Maven依赖项: Gradle Groovy DSL

  • 问题内容: 我有这个PHP代码: 如果我有一个名为的文件,则此函数返回。 我想做相反的事情,我希望函数不带扩展名就返回。 该文件只是变量中的字符串。 问题答案: 不需要所有这些。签出pathinfo() ,它为您提供了路径的所有组件。 手册中的示例: 代码输出: 或者,您只能获得某些部分,例如:

  • cmf_get_file_extension($filename) 功能 获取文件扩展名 参数 $filename: string 文件名 返回 string 文件扩展名