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

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

Это возвращает «j» по какой-либо причине вместо «jpeg»,

Есть ли что-нибудь, что я должен сделать перед вызовом pathinfo ()?

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

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

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

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

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

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

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