Я работаю над небольшой функцией, чтобы взять URL-адрес и вернуть относительный путь, основанный на том, где он находится.PHP pathinfo обманывается url в quert string. Любое обходное решение?
Если URL-адрес содержит путь в строке запроса, pathinfo
возвращает неверные результаты. Об этом свидетельствует приведенный ниже код:
$p = 'http://localhost/demos/image_editor/dir_adjuster.php?u=http://localhost/demos/some/dir/afile.txt';
$my_path_info = pathinfo($p);
echo $p . '<br/><pre>';
print_r($my_path_info);
echo '</pre>';
, что код выхода:
http://localhost/demos/image_editor/dir_adjuster.php?u=http://localhost/demos/some/dir/afile.txt
Array
(
[dirname] => http://localhost/demos/image_editor/dir_adjuster.php?u=http://localhost/demos/some/dir
[basename] => afile.txt
[extension] => txt
[filename] => afile
)
который, очевидно, является неправильным. Любое обходное решение?
Спасибо! Это возвращает '[dirname]' correct, что давало мне проблемы, но '[extension]' и '[filename]' все еще неверны. Во всяком случае, моя проблема решена, поскольку я беспокоился о '[dirname]', но я оставил бы вопрос открытым в течение часа, чтобы узнать, сможет ли кто-нибудь получить все компоненты правильно. –
@Majid ах, конечно, это URL. parse_url() должен работать лучше для этого: http://www.php.net/parse_url –
Спасибо, Пекка. Да! Итак, я сначала использовал parse_url(), чтобы получить правильный «путь», затем я буду использовать pathinfo() на нем. Возможно, вы захотите включить свое решение в свой ответ, поэтому более полезно, когда люди читают это позже, но если вы не найдете его того стоит, я бы отредактировал вопрос и включил ваш метод. –