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
Форумы портала PHP.SU :: Версия для печати :: curl попытка забрать страницу
Форумы портала PHP.SU » » Вопросы новичков » curl попытка забрать страницу

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

1. madmarley - 20 Июля, 2014 - 17:26:28 - перейти к сообщению
Здравствуйте.
Пытаюсь забрать страничку и скрипт как бы и работает но время от времени возникает проблема
браузер показывает страничку 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.  

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

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


помогите разобраться с проблемой.
2. Panoptik - 20 Июля, 2014 - 21:58:48 - перейти к сообщению
CURLOPT_FOLLOWLOCATION сделает всё за вмас
3. snikers987 - 20 Июля, 2014 - 22:03:55 - перейти к сообщению
Справедливости ради, стоит отметить, что:
Цитата:
CURLOPT_FOLLOWLOCATION cannot be activated when an open_basedir is set

 

Powered by ExBB FM 1.0 RC1