Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: curl попытка забрать страницу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
madmarley
Отправлено: 20 Июля, 2014 - 17:26:28
Post Id


Новичок


Покинул форум
Сообщений всего: 1
Дата рег-ции: Июль 2014  


Помог: 0 раз(а)




Здравствуйте.
Пытаюсь забрать страничку и скрипт как бы и работает но время от времени возникает проблема
браузер показывает страничку 404 потому что ссылка в строке меняется из demo.loc/ на http://demo[dot]loc/laws/show/4651-1[dot][dot][dot]UHelIAsXU1UGu31M
/laws/show/4651-17?test=KSbMf5tHLxL.acbkZigbiM5UHelIAsXU1UGu31M это скорее всего что то присылаемое сервером для перехода.. но я по этой ссылке должен пойти относительно ихнего домена а она приписывается к адресной строке в моем браузере
у меня вопрос почему так получается?
PHP:
скопировать код в буфер обмена
  1.  
  2. $text = "http://zakon4.rada.gov.ua/laws/show/4651-17";
  3. require_once 'simple_html_dom.php';
  4. $base_url = 'http://zakon4.rada.gov.ua/laws/show/4651-17';
  5.  
  6. $page = get_page($base_url,1);
  7. echo $page;
  8.  
  9. function get_page($url,$x){
  10.     if ($x > 5) {
  11.         return 0;
  12.     }
  13.     echo 'URL '.$url.'<br>';
  14.     $curl = curl_init (); // инициализация
  15.     curl_setopt($curl,CURLOPT_URL,$url);
  16.     curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
  17.     //curl_setopt($curl,CURLOPT_NOBODY,true);
  18.     curl_setopt($curl,CURLOPT_HEADER,true);
  19.     curl_setopt($curl,CURLOPT_COOKIEJAR,cook.txt);
  20.     $out = curl_exec($curl);
  21.     echo $out.'<br>';
  22.     $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
  23.     echo $code.'<br>';
  24.     if ($code == 301 || $code == 302) {
  25.         preg_match('/Location:(.*?)\n/', $out, $matches);
  26.         $url_sufix = trim(array_pop($matches));
  27.         curl_close ($curl);
  28.         return get_page(('http://zakon4.rada.gov.ua'.$url_sufix),$x++);
  29.     }
  30.     curl_close($curl);
  31.     return $content;
  32. }
  33.  

скрипт сотый черновой вариант поэтому уже вбиваю костыли для быстроты не обращайте внимание на выход из рекурсии..

если включить опцию перенаправления собственно тоже проскакивает такая же проблема.


помогите разобраться с проблемой.
 
 Top
Panoptik
Отправлено: 20 Июля, 2014 - 21:58:48
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




CURLOPT_FOLLOWLOCATION сделает всё за вмас


-----
Just do it
 
 Top
snikers987
Отправлено: 20 Июля, 2014 - 22:03:55
Post Id



Участник


Покинул форум
Сообщений всего: 1239
Дата рег-ции: Сент. 2011  
Откуда: Крым


Помог: 25 раз(а)




Справедливости ради, стоит отметить, что:
Цитата:
CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set


-----
Когда всматриваешься в тёмную бездну, учти, что кто-то может смотреть на тебя из неё...
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB