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+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСкрипт на сайте отсылает письмо, а почтовик сайта на сервере пересылать не хочет
3 master-vek 1785 17.7.2020, 16:47
автор: DF™
Горячая тема (нет новых ответов) Тем, кто хочет получить отличные тексты, но не может найти хорошего копирайтера
30 Марина123 7269 27.7.2019, 15:43
автор: Марина123
Открытая тема (нет новых ответов) Продам парсер авито (с номерами+поддержка прокси) php+curl+php-simple_html_dom
Продам парсер авито (с номерами+поддержка прокси) php+curl+php-simple_
0 don_java 3374 14.5.2017, 22:12
автор: don_java
Открытая тема (нет новых ответов) Простой сайт - цена вопроса?
13 Alexei37 4040 24.4.2015, 21:12
автор: vovanpadavan
Открытая тема (нет новых ответов) Html-верстальщик хочет набраться опыта
0 Sergey_net_it 1209 26.11.2013, 15:57
автор: Sergey_net_it


 



RSS Текстовая версия Сейчас: 19.4.2024, 3:34
Дизайн