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

发布于 2024-10-20 17:31:21 字数 185 浏览 1 评论 0原文

$path = 'abc.jpeg';
$info = pathinfo($path,PATHINFO_EXTENSION);
echo $info['extension'];

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

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

$path = 'abc.jpeg';
$info = pathinfo($path,PATHINFO_EXTENSION);
echo $info['extension'];

This is returning 'j' for some reason, instead of 'jpeg'

Is there anything I should do before calling pathinfo() ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

み零 2024-10-27 17:31:21

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

你应该只回显$info。

从文档(realpath):

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

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

感谢蒂姆·库珀的评论。 (int)'extension' 的值为 0。在 String 类型概述了如何将字符串作为数组访问,在它提到的注释中:

非整数类型被转换为整数。

If you pass a second argument to pathinfo, then it doesn't return an array.

You should just echo $info.

From the docs (realpath):

If options is used, this function will return a string if not all elements are requested.

Accessing $info['extension']; happens to be accessing the first character of the string array.

Thanks to Tim Cooper's comment. (int)'extension' evaluates to 0. In the documention on the String type in the section "String access and modification by character" outlines how strings can be accessed as arrays, in the note it mentions:

Non-integer types are converted to integer.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文