Обращения к нескольким сайтам сразу

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

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

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Помогите плиз, очень нужен скрипт который бы выполнял функцию обращения к нескольким страницам одновременно, т.е. например, я хочу что бы я сначала зашёл на сайт _nulled.ws, а затем автоматически на nulled.сс и т.д. (много ссылок будет). Никаких действий просто обращение по адрессу. Как его организовать? пхп?
     
  2. malibu

    malibu Создатель

    Регистр.:
    8 июл 2009
    Сообщения:
    20
    Симпатии:
    9
    Tadasi нравится это.
  3. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Скрипт будет выглядить так:?

    PHP:
    <?php
    // create both cURL resources
    $ch1 curl_init();
    $ch2 curl_init();
    $ch3 curl_init();

    // set URL and other appropriate options
    curl_setopt($ch1CURLOPT_URL"http://nulled.ws/");
    curl_setopt($ch1CURLOPT_HEADER0);
    curl_setopt($ch2CURLOPT_URL"http://nulled.сс/");
    curl_setopt($ch2CURLOPT_HEADER0);
    curl_setopt($ch3CURLOPT_URL"https://nulled.cc/");
    curl_setopt($ch3CURLOPT_HEADER0);

    //create the multiple cURL handle
    $mh curl_multi_init();

    //add the three handles
    curl_multi_add_handle($mh,$ch1);
    curl_multi_add_handle($mh,$ch2);
    curl_multi_add_handle($mh,$ch3);

    $active null;
    //execute the handles
    do {
        
    $mrc curl_multi_exec($mh$active);
    } while (
    $mrc == CURLM_CALL_MULTI_PERFORM);

    while (
    $active && $mrc == CURLM_OK) {
        if (
    curl_multi_select($mh) != -1) {
            do {
                
    $mrc curl_multi_exec($mh$active);
            } while (
    $mrc == CURLM_CALL_MULTI_PERFORM);
        }
    }

    //close the handles
    curl_multi_remove_handle($mh$ch1);
    curl_multi_remove_handle($mh$ch2);
    curl_multi_remove_handle($mh$ch3);
    curl_multi_close($mh);

    ?>
    Он поочереди зайдёт по каждой из ссылок или одновременно? а можно сделать паузу между заходами, например, в 5 секунд?

    p.s. и ещё, подскажите смысл этой строки:

    PHP:
    curl_setopt($ch3CURLOPT_HEADER0);
    и если изменить нули на 1, что это даст?
     
  4. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Ты решай что тебе надо, а то "обратиться к нескольким сайтам сразу с паузами между обращениями в несколько секунд "не получится :D
    Вообще у нас есть хороший класс по работе к мультикурлом http://www.nulled.ws/showthread.php?t=120557 Лучше юрзать его.
     
  5. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    разве такого нету, не может быть. знающие отзовитесь!
     
  6. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    чего нету?
    если ты по

    это взаимно-исключающие условия. Одновременно или с паузами, третьего не дано.
    Мультикурл работает в многопоточном режиме, если нужны паузы, по используй обычный курл или file_get_contents
     
  7. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    вот... а можно в этом месте поподробнее... мне ж по сути и не обязательно этот мультикурл использовать - главное обращение с небольшой паузой к нескольким сайтам.
    p.s. пока писал сообщение в голову пришла идея, а скрипт автосёрфинга для этих целей случаем не подойдёт?
     
  8. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    884
    Симпатии:
    540
    Возможно подойдёт, но легче написать с 0, тк там всего ничеко кода.
    напр
    PHP:
    $array_urls = array(
    'http://nulled.ws/',
    'http://nulled.ws/',
    'http://nulled.ws/'
    );// массив с сылками
     
    $sleep 5;// на сколько заснуть, сек
    foreach($array_urls as $url){
     
     
    funcrion_connect($url); // или file_get_contents($url);
     
    sleep($sleep);
    }
    // если file_get_contents, то эт не нужно
    function funcrion_connect($url){
     
    // инициализация сеанса
     
    $ch curl_init();
     
     
    // установка URL и других необходимых параметров
     
    curl_setopt($chCURLOPT_URL$url);
     
    curl_setopt($chCURLOPT_HEADER0);
     
     
    // загрузка страницы и выдача её браузеру
     
    curl_exec($ch);
     
     
    // завершение сеанса и освобождение ресурсов
     
    curl_close($ch);
    }
    curl - используется для полноченной имитации браузера (перелать пост запрос, реферра и тп)
    file_get_contents стоит использовать, если нужно просто получить содержимое страницы, без всяких заморочек.
     
  9. Tadasi

    Tadasi Постоялец

    Регистр.:
    6 май 2008
    Сообщения:
    145
    Симпатии:
    6
    Задача немого усложнилась. Ко всему этому нужно теперь добавить Регистрацию на сайте (БобрДобр). Реально ли такое сделать? Открыл их исходный код - от туда брать переменные или как?

    p.s. Как исправить, что бы список сайтов подгружался из текстового файла? ну и конечно же работало на пхп.
     
  10. malibu

    malibu Создатель

    Регистр.:
    8 июл 2009
    Сообщения:
    20
    Симпатии:
    9
    используй плагин для фф TamperData, в нем увидишь какие переменные передаются при регистрации
    PHP:
    $array_urls file('path_to_file');
    ......
    foreach(
    $array_urls as $url){
     
    funcrion_connect(trim($url)); // или file_get_contents($url);
     
    sleep($sleep);

    ......
    trim($url) надо, чтоб удалить пробельные символы вначале и вконце строк
    можно rtrim юзать, тогда только из конца строки будет удалять (перевод каретки будет вконце строк, его точно надо удалять)
     
    Tadasi нравится это.
Статус темы:
Закрыта.