Как заставить 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 в разделе "Доступ к строкам и их модификация по символам" показано, как можно получить доступ к строкам в виде массивов, в примечании, которое упоминается:
Нецелые типы преобразуются в целые.