如何使 pathinfo() 返回正确的扩展名?

Posted

技术标签:

【中文标题】如何使 pathinfo() 返回正确的扩展名?【英文标题】:How to make pathinfo() return the right extension? 【发布时间】:2011-07-10 00:27:54 【问题描述】:
$path = 'abc.jpeg';
$info = pathinfo($path,PATHINFO_EXTENSION);
echo $info['extension'];

由于某种原因返回 'j',而不是 'jpeg'

在调用 pathinfo() 之前我应该​​做些什么吗?

【问题讨论】:

【参考方案1】:

如果将第二个参数传递给 pathinfo,则它不会返回数组。

你应该回显 $info。

来自文档 (realpath):

如果使用选项,如果不是所有元素都被请求,此函数将返回一个字符串。

访问$info['extension'];恰好是访问字符串数组的第一个字符。

感谢蒂姆·库珀的评论。 (int)'extension' 的计算结果为 0。在有关 String 类型的文档中,“字符串访问和按字符修改”部分概述了如何将字符串作为数组访问,在它提到的注释中:

非整数类型转换为整数。

【讨论】:

它给你的第一个字符为:var_dump((int)'extension'); 产生int(0) @Tim 谢谢,我已经扩展了我的答案。有趣的是,通过字符串的数组访问,偏移量被转换为整数,并且刚刚了解到使用越界索引将用空格填充字符串。

以上是关于如何使 pathinfo() 返回正确的扩展名?的主要内容,如果未能解决你的问题,请参考以下文章

如果文件名是 UTF-8,则使 PHP pathinfo() 返回正确的文件名

如何使用 css 网格使主要内容 div 随内容扩展?

PHP获取文件后缀名

在 PHP 中检查上传表单中的文件扩展名 [重复]

pathinfo函数

如何使 UIBezierPath 从中心填充