Перекодировка запроса GET

vave

Полезный
Регистрация
22 Июн 2007
Сообщения
467
Реакции
16
Долго мучился с поиском проблемы, уже думал что все праздники проведенные за компом, были напрасны.
Суть такая, есть 2 основных кода, это:

HTML:
<form method="GET" action="file.php">  
<input type="text" name="q">
<input type="submit">
</form>
и
PHP:
$site = file_get_contents('http://google.com');
echo $site;
И проблема заключается в том что при вводе текста латиницей, всё работает без проблем,
при вводе кириллицей, никакого результата. Уже всё перепробовал, и думал что идеи кончились.
И тут отчаившись, я ввожу русское слово в таком вот виде: %D0%BB%D1%83%D1%87%D1%88%D0%B8%D0%B9
сначала копирую в браузер в адресную строку, заработало, удивлен, ввожу в строку поиска, работает!

Только как сделать так что бы набирая русский текст в строку поиска, он преобразовывался в такую рабочую кашу, я даже не представляю!

Надеюсь на вашу помощь!
 
Для этого есть urlencode(). И кодировать надо не всю строку, а только значения. А браузер это за Вас делает
Код:
$url = 'http://site.ru/?q='.urlencode($q);

А если у Вас много данных, то лучше http_build_query(). Он сам урл преобразует, ему енкода не надо.
 
Последнее редактирование:
Вообще не понятен вопрос. Для начало в хэдэре пошлите кодировку утф8 и файлы сохраните в ней же. Потом можно дальше думать
 
Назад
Сверху