Ребята помогите, подскажите работа с curl

Discussion in 'PHP' started by __XT__, 6 Sep 2008.

  1. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    Code:
    for ($p = 0; $p < 10; $p++) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 1);
    curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)');
    $ss=explode("\n",curl_exec($ch));
    $res=join("",$ss);
    curl_close($ch);
    }
    
    .....
    

    Ребята вообщем такая делема, надо в цикле preg_match -ем поискать текст - с етим всё понятно.

    но тема в том что не получаеться заставить работать курлы в цикле(((

    Code:
    [B]CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");[/B]
    читаеться только одна страница.

    Пожалуйста подскажите в чём беда.
     
    1 person likes this.
  2. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    ты ведь переменную перезаписываешь =\
     
  3. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    можешь код накидать как будет в цикле работать?

    чтобы мне более детально разобраться.
    -спасибо-
     
  4. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    а зах ты переменую перезаписываеш? из цикла выйдет только результат последнего запроса ...
    может так сделать? $res[]=join("",$ss);


    CURLOPT_CONNECTIONTIMEOUT - что это оО на php.net ненашёл эту константу
     
    #4 Doom123, 6 Sep 2008
    Last edited: 6 Sep 2008
  5. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    Я понял про $ch какие могут быть пути решения?
     
  6. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    чет ты чушь несешь непонятную
    что тебе надо ?
     
  7. .:EnoT:.

    .:EnoT:. Сексуальное чудовище

    Joined:
    29 May 2007
    Messages:
    803
    Likes Received:
    559
    Reputations:
    50
    XT привет)
    Если я правильно понял нужно, отпарсить n страниц и на каждой из них взять регуляркой какую-либо инфу и потом всё это дело вывести.
    Если так, то могу предложить вот что:
    PHP:
    <?php
    for ($p 0$p 10$p++) {
        
    $ch curl_init();
        
    curl_setopt($chCURLOPT_URL"http://yandex.ru/yandsearch?p=".$p."&text=test");
        
    curl_setopt($chCURLOPT_TIMEOUT1);
        
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
        
    curl_setopt($chCURLOPT_CONNECTIONTIMEOUT1);
        
    curl_setopt($chCURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)');
        
    $ss curl_exec($ch);
        
    preg_match_all('#....#Us'$ss$out);
        
    $result .= join('<br/>'$out[1]);
        
    curl_close($ch);
    }
    echo 
    $result;
    ?>
     
    1 person likes this.
  8. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    =====

    for ($p = 0; $p < 10; $p++) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://yandex.ru/yandsearch?p=".$p."&text=test");
    curl_setopt($ch, CURLOPT_TIMEOUT, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CONNECTIONTIMEOUT, 1);
    curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)');
    $ss=explode("\n",curl_exec($ch));
    $res[]=join("",$ss);
    curl_close($ch);
    }
    if(preg_match("/sex/i", $res[$p])){
    print "Ура нашёл!";
    }

    ============


    Мне надо чтобы в яндексе по страничкам искалось слово "sex". и урлы записывались в файл.

    Я всё понимаю как делать кроме поточности курлов.
    т.е. не получаеться запустить курлы в цикле, чтобы читали разнеые странички а не последнюю.
     
    #8 __XT__, 6 Sep 2008
    Last edited: 6 Sep 2008
  9. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    Enot привет спасибо большое но там где то ошибка у тебя в джоин ..не работает.
     
  10. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    мдаа ....

    PHP:
    $a fopen('urls.txt','a+');
    for (
    $p 0$p 10$p++) {
    $url "http://yandex.ru/yandsearch?p=".$p."&text=test";
    $f file_get_contents($url);
    if(
    strpos($f,'sex'))
      
    fwrite($a,$url."\r\n");
    }
    fclose($a);
     
  11. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    Дум)) спасибо неть.
    я немножко перепутал надо чтобы искался контент с словом секс и записывался в файл.
     
  12. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    ВОТ твёрдая задача:
    надо чтоб искались слова в яндексе с "sex" и записывались в файл.
    Я всё понимаю как сделать кроме запуска курлов для многих страниц.
    с циклом не получаеться дружить(((
     
  13. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    Ребята маску прегматча поиск и запись я всё сделаю, мне только важно чтобы кто нибудь показал как в цикле по страничкам бегать и выводить с каждой какой нить контент дял примера.
     
  14. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    __XT__ зах делать всё через жопу когда можно обойтись одним file_get_contents
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Зачем тебе курл, ты объяснить можешь?
    PHP:
    $ya=file_get_contents('http://yandex.ru/yandsearch?p='.$p.'text=sex');
    // Выдираем все ссылки
    $i=preg_match_all и т.д.
    for (
    $j=0;$j<$i;$i++)
    {
    $tmp=file_get_contents(переменная из регулярки);
    if (
    preg_match('/sex/i')) $out[]=$tmp;
    }
    //выводим, как нам хочется
    print_r($out);
     
    _________________________
  16. __XT__

    __XT__ Elder - Старейшина

    Joined:
    7 Nov 2006
    Messages:
    10
    Likes Received:
    17
    Reputations:
    7
    курл мне нужен т.к. работа с куками с агентом, с рефером будет.
    других способов помимо курла я не знаю.
    я спец написал помогите работе с курлами))
    тт.к. планы на программку большие...не понятен только один момент.
    курлы в циклах и вывод какой нит ьстроки с каждого запроса:
    просто для примера чтоб видно что работают все запросы а не последний.
     
  17. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    ТЫ ЖЕ СДЕЛАЛ ВСЕ!!!!!