2009-07-23 5 views
2

Я хотел бы file_get_contents, чтобы получить URL, который выглядит следующим образом: http://wapedia.mobi/sv/GrötPHP получить url со специальными символами без urlencode: их!

Проблема заключается в том, что он просит (не размещать ссылку целиком, извините): ... wapedia.mobi/sv/Gr%C3% B6t, который вы видите, был urlencoded, эта страница не дает мне никаких результатов.

Как я могу это сделать?

ответ

1

Согласно PHP manua l, вы должны специально кодировать URL-адрес, если он содержит специальные символы. Это означает, что сама функция не должна делать специального кодирования. Скорее всего, ваш URL-адрес кодируется до того, как передается функции, поэтому сначала пройдите через urldecode и посмотрите, что произойдет.

Редактировать: Вы говорите, что кодировка перепутана. Снова в руководстве PHP указано, что вам необходимо кодировать URL-адреса до передачи их file_get_contents. Попробуйте кодировать URL-адрес, а затем передайте его функции.

$url = urlencode($url); 
file_get_contents($url); 
+0

wapedia.mobi/sv/Gr%C3%B6t был на самом деле работает. Извините, но мой PHP-скрипт запрашивает: Gr% F6t. Почему это? И как я могу кодировать (Gröt) так, чтобы оно заканчивалось: Gr% C3% B6t. Большое вам спасибо. – Johan

+1

Я исправил проблему. Он возник из функции JavaScript, которая передала строку в качестве аргумента GET в файл PHP. Поэтому я думаю, что это не был вопрос PHP, извините. Я изначально закодировал его с помощью функции escape() JavaScript, однако я обнаружил, что с помощью encodeURIComponent работает намного лучше с UTF-8. Большое спасибо за ваше время и помощь. – Johan

+0

спасибо Йохану, ваше предложение использовать 'encodeURIComponent' сработало для меня! – raoulbia