X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> cURL не хочет парсить УРЛ со знаком вопроса, php cURL ?
Brim
Brim
Topic Starter сообщение 8.8.2014, 11:04; Ответить: Brim
Сообщение #1


Есть вот такой код.

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.sibesbank.ru/");
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookies.txt");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:22.0) Gecko/20100101 Firefox/25.0');
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');
$html = curl_exec ($ch);
curl_close($ch);
echo $html;
?>

Если:
curl_setopt($ch, CURLOPT_URL, "http://www.sibesbank.ru/"); - то все работает отлично, на выходе получаем главную страницу сайта.
Если же УРЛ меняется на "http://www.sibesbank.ru/?city=moscow" - а такой и нужен бы (ибо сервер не в Москве), то получаем пустую страницу. При этом куки принимается и в файл пишется...

Подскажите, чего не хватает? Что я делаю не так? :)
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 8.8.2014, 11:22; Ответить: x64
Сообщение #2


скорее всего, указанного адреса не существует.
можно добавить пару параметров:
Код
curl_setopt($ch, CURLOPT_FAILONERROR, FALSE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);

первый — не даёт курлу завершать работу, если получена ошибка 4xx и выше
второй — включает заголовки в ответ (echo $html; выведет и заголовки тоже)

возможно, запрашиваемый адрес возвращает редирект, по которому курл следовать не будет. для следования редиректам нужна такая штука:
Код
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

но оно не работает если, внезапно, в конфиге пыха установлено open_basedir. в этом случае, нужно самостоятельно парсить заголовки и следовать редиректам.
несложный пример реализации был в комментариях в мане


зы: а чегой-то:
Код
curl_setopt($ch, CURLOPT_RETURNTRANSFER, '1');

?
будьте проще, юзайте true/false или 1/0 (:

Сообщение отредактировал x64 - 8.8.2014, 11:26


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Brim
Brim
Topic Starter сообщение 8.8.2014, 23:00; Ответить: Brim
Сообщение #3


Код
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);

помогло, благодарю. :)

Сообщение отредактировал Brim - 8.8.2014, 23:00
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
xoopw
xoopw
сообщение 9.8.2014, 19:12; Ответить: xoopw
Сообщение #4


CURLOPT_FOLLOWLOCATION на многих хостингах не работает. Будьте внимательны.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Госдума хочет освободить самозанятых от налога на профессиональную деятельность
13 VinogradOFF 1667 15.1.2021, 1:29
автор: VinogradOFF
Открытая тема (нет новых ответов) Сайт не хочет попадать в индекс Bing
13 Mansurka 4374 14.12.2020, 17:19
автор: fly_amigo
Открытая тема (нет новых ответов) «Роскосмос» хочет потратить 1,5 трлн рублей на создание спутникового интернета «Сфера»
3 seostock 299 7.11.2020, 21:49
автор: NormanSky
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСкрипт на сайте отсылает письмо, а почтовик сайта на сервере пересылать не хочет
3 master-vek 656 17.7.2020, 16:47
автор: DF™
Горячая тема (нет новых ответов) Тем, кто хочет получить отличные тексты, но не может найти хорошего копирайтера
30 Марина123 5447 27.7.2019, 15:43
автор: Марина123


 



RSS Текстовая версия Сейчас: 25.1.2021, 2:52
Дизайн