$path = 'abc.jpeg'; $info = pathinfo($path,PATHINFO_EXTENSION); echo $info['extension']; Это возвращает «j» по какой-либо причине вместо «jpeg», Есть ли что-нибудь, что я должен сделать перед вызовом pathinfo ()?
все внешние URL-адреса выглядят как «module / action? key1 = param1». Никакая настройка не возможна – но это быстро. Разница в том, что первый использует GET PHP, а второй использует PATH_INFO. Я несколько раз видел PATH_INFO , но до сих пор не знаю, что это такое. Что оно делает?
Я ищу портативный способ получить (удобную) переменную $_SERVER['PATH_INFO'] . Прочитав некоторое время, выясняется, что PATH_INFO происходит из CGI / 1.1, и мой не всегда присутствует во всех конфигурациях. Каков наилучший (в основном безопасный) способ получить эту переменную – помимо ее извлечения вручную (проблема безопасности).
При использовании PHP-функции pathinfo() в имени файла, который известен как UTF-8, он не возвращает правильное значение, если только перед символом «нормальный» нет специального символа. Примеры: pathinfo('aä.pdf') возвращает: Array ( [dirname] => [the dir] [basename] => aä.pdf [extension] => pdf [filename] => aä ) который является прекрасным и денди, но pathinfo('äa.pdf') возвращает: Array ( [dirname] => […]
Из PHP существует ли кросс-платформенный способ межсетевого сервера, определяющий, включен ли PATH_INFO на сервере, на котором вы работаете? Похоже, что $ _SERVER ['PATH_INFO'] заполняется только в том случае, если после сценария есть дополнительные сегменты пути, поэтому вы не можете достоверно определить, включен ли PATH_INFO, если запрос предназначен для /index.php, например.