При изменении url CURL отдает предыдущую страницу

Тема в разделе "PHP", создана пользователем SkiLLer, 17 июл 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. SkiLLer

    SkiLLer

    Регистр.:
    22 авг 2007
    Сообщения:
    307
    Симпатии:
    64
    Есть скрипт, который должен забирать страницу результатов поиска, находить ссылки на другие страницы, выбирать рандомную страницу и скачивать. Все это скрипт делает кроме того, что когда скачиваем рандомную страницу поиска, скачиватся первая страница. Может кто глянет в чем тут дело?
    Вот сам скрипт:
    PHP:
    set_time_limit(60);
    function 
    GetPage($url,$post=false){
        
    $agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)" ;
        
    $header [] = "Accept: text/html;";
        
    $header [] = "Accept_charset: utf-8";
        
    $header [] = "Accept_encoding: identity";
        
    $header [] = "Accept_language: en-us";
        
    $header [] = "Connection: Keep-Alive";
        
    $ch curl_init();
        
    curl_setopt($ch,CURLOPT_URL,$url);
        
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        if(
    $post){
            
    curl_setopt($ch,CURLOPT_POST,1);
            
    curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
        }
        
    curl_setopt($ch,CURLOPT_USERAGENT,$agent);
        
    curl_setopt($ch,CURLOPT_HTTPHEADER,$header );
        
    curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
        
    $page curl_exec($ch);
        return 
    $page;
    }
    $keyword=urlencode('home loan');
    $from="http://www.articlesbase.com/find-articles.php?q=$keyword";
    $page GetPage($from);
    preg_match_all("|<a href=\"(find-articles\.php\?q=[^ >]+&amp;page=[0-9]+)\">|",$page,$out,PREG_PATTERN_ORDER);
    $urls $out[1];
    $from "http://www.articlesbase.com/".$urls[rand(0,count($urls)-1)];
    echo 
    $from;
    $page GetPage($from);
    echo 
    $page;
     
  2. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    попробуй rand заменить на mt_rand
     
  3. polyetilen

    polyetilen Заблокирован

    Регистр.:
    10 авг 2006
    Сообщения:
    814
    Симпатии:
    474
    в ссылке &amp; заменить на &, вставить перед $page = GetPage($from);
    PHP:
    $from str_replace('&amp;''&'$from);
     
    SkiLLer нравится это.
Статус темы:
Закрыта.