Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

не могу передать корректно URL в file_get_contents

19K
11 мая 2007 года
Lenfer
15 / / 21.02.2007
Есть вот такая функция
 
Код:
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;
}


Если передаю одно слово все работает (например: Boomer или Иван)
Но вот если передаю два слова (например Змей Горыныч, Rob Zombie) не пашет, замучился совсем.

Может знает кто решение :confused: ... заранее огромное спасибо
8
11 мая 2007 года
mfender
3.5K / / 15.06.2005
пробелы в параметрах замещаются значком %20 или +
А вообще, правильно кодировать их с помощью urlencode()
256
11 мая 2007 года
foxweb
1.0K / / 27.07.2005
добавь в код $login = urlencode(trim($login));
19K
11 мая 2007 года
Lenfer
15 / / 21.02.2007
Увы не помогло
8
11 мая 2007 года
mfender
3.5K / / 15.06.2005
Цитата: Lenfer
Увы не помогло


Что не помогло? Ты ж на другой стороне декодировать этот параметр должен.

19K
12 мая 2007 года
Lenfer
15 / / 21.02.2007
Что значит на другой стороне?
245
12 мая 2007 года
~ArchimeD~
1.4K / / 24.07.2006
Попробуй перед пробелом \ поставить. Мало ли сервак тупит.
8
13 мая 2007 года
mfender
3.5K / / 15.06.2005
Цитата:
Что значит на другой стороне?



Код:
$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']);


Но, судя по тому, что на той стороне файл с расширением .pl, то нужно поискать, какая функция декодирует в Perl.
19K
15 мая 2007 года
Lenfer
15 / / 21.02.2007
Хорошо попробую ... весь проект встал изза этого :(
12
15 мая 2007 года
alekciy
3.0K / / 13.12.2005
Цитата: Lenfer
Хорошо попробую ... весь проект встал изза этого :(



Ох сильный же у вас проект, если он встал из-за такой элементарной мелочи.

19K
16 мая 2007 года
Lenfer
15 / / 21.02.2007
ну аж слов нет ... интелект через край ... лол
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог