Как заставить pathinfo() возвращать правильное расширение?

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

По какой-то причине это возвращает "j" вместо "jpeg"

Что я должен сделать перед вызовом pathinfo()?

1 ответ

Если вы передаете второй аргумент в pathinfo, он не возвращает массив.

Вы должны просто повторить $info.

Из документов ( realpath):

Если используются параметры, эта функция будет возвращать строку, если не все элементы запрашиваются.

Доступ к $info['extension']; происходит доступ к первому символу массива строк.

Благодаря комментарию Тима Купера. (int)'extension' оценивается как 0. В документации по типу String в разделе "Доступ к строкам и их модификация по символам" показано, как можно получить доступ к строкам в виде массивов, в примечании, которое упоминается:

Нецелые типы преобразуются в целые.

Другие вопросы по тегам