$path = 'abc.jpeg'; $info = pathinfo($path,PATHINFO_EXTENSION); echo $info['extension'];
Это возвращает «j» по какой-либо причине вместо «jpeg»,
Есть ли что-нибудь, что я должен сделать перед вызовом pathinfo ()?
Если вы передаете второй аргумент pathinfo, он не возвращает массив.
Вы должны просто отозвать $ info.
Из документов ( realpath ):
Если используются опции, эта функция вернет строку, если не все элементы запрошены.
Доступ к $info['extension'];
происходит доступ к первому символу массива строк.
Благодаря комментарию Тима Купера. (int)'extension'
оценивается равным 0. В документе, относящемся к типу String в разделе «Доступ к строкам и изменение по символу», описывается, как строки могут быть доступны как массивы, в примечании, которое оно упоминает:
Нецелые типы преобразуются в целочисленные.