не могу передать корректно URL в file_get_contents
Код:
function return_str_from_webpage($login){
$site = "http://www.site.ru/page.pl?login=";
$url_end = "&short=1";
$file = $site.$login.$url_end;
$str = file_get_contents($file);
return $str;
}
$site = "http://www.site.ru/page.pl?login=";
$url_end = "&short=1";
$file = $site.$login.$url_end;
$str = file_get_contents($file);
return $str;
}
Если передаю одно слово все работает (например: Boomer или Иван)
Но вот если передаю два слова (например Змей Горыныч, Rob Zombie) не пашет, замучился совсем.
Может знает кто решение :confused: ... заранее огромное спасибо
А вообще, правильно кодировать их с помощью urlencode()
добавь в код $login = urlencode(trim($login));
Увы не помогло
Цитата: Lenfer
Увы не помогло
Что не помогло? Ты ж на другой стороне декодировать этот параметр должен.
Что значит на другой стороне?
Попробуй перед пробелом \ поставить. Мало ли сервак тупит.
Цитата:
Что значит на другой стороне?
Код:
$URL = "http://www.site.ru/page.pl?login=%s&short=%d";
$login = urlencode("Змийго Рыныч");
echo $login;
/** Результатом будет строка %C7%EC%E8%E9%E3%EE+%D0%FB%ED%FB%F7 */
/** Приводим строку к требуемому виду http://www.site.ru/page.pl?login=%C7%EC%E8%E9%E3%EE+%D0%FB%ED%FB%F7&short=1 */
$URL = sprintf($URL, $login, 1);
/** Отправляем запрос серверу с помощью file_get_contents() */
$res = file_get_contents($URL);
/** В результате, сервер не понимает строку в параметре $_GET['login']
В PHP это решается с помощью urldecode() */
echo urldecode($_GET['login']);
$login = urlencode("Змийго Рыныч");
echo $login;
/** Результатом будет строка %C7%EC%E8%E9%E3%EE+%D0%FB%ED%FB%F7 */
/** Приводим строку к требуемому виду http://www.site.ru/page.pl?login=%C7%EC%E8%E9%E3%EE+%D0%FB%ED%FB%F7&short=1 */
$URL = sprintf($URL, $login, 1);
/** Отправляем запрос серверу с помощью file_get_contents() */
$res = file_get_contents($URL);
/** В результате, сервер не понимает строку в параметре $_GET['login']
В PHP это решается с помощью urldecode() */
echo urldecode($_GET['login']);
Но, судя по тому, что на той стороне файл с расширением .pl, то нужно поискать, какая функция декодирует в Perl.
Хорошо попробую ... весь проект встал изза этого :(
Цитата: Lenfer
Хорошо попробую ... весь проект встал изза этого :(
Ох сильный же у вас проект, если он встал из-за такой элементарной мелочи.
ну аж слов нет ... интелект через край ... лол