Цикл и время работы скрипта, как?

Тема в разделе "PHP", создана пользователем komyak, 25 мар 2010.

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

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    Время исполнения скрипта 30 секунд. Не могу правильно написать реггер, чтоб проходил по списку сайтов и регистрировал на каждом аккаунт. Проходит 5-10 урлов и вылетает из-за тайм лимит. Но в тоже время у других регалок нет ограничений.
    Как правильно сделать цикл, чтобы время не было ограничено:
    PHP:
    include( 'anticaptcha.php' );
    $antigate_key 'antigate_key';

    function 
    curl$url $refer )
    function 
    post$url$post$refer )
    function 
    login$quantity )

        
    $login login);
        
    $email $login '@antireg.com';
        
    $password '123456q';
        
    $url 'http://www.yandex.ru';
        
    $ankor 'Подпись';
        
    $forums file"file_url.txt" );
        
    $c count$forums );
        
    $ws 0;
    while ( 
    $ws <= $c )
    {
        
    $forum trim$forums[$ws] );
        
    $result curl$forum 'profile.php?mode=register&agreed=true'$forum 'profile.php?mode=register' );
        
    preg_match'#sid" value="(.*?)"#i'$result$sid );
        
    preg_match'#firm_id" value="(.*?)"#i'$result$confirm_id );
        
    file_put_contents"captch.jpg"curl$forum "profile.php?mode=confirm&id=" $confirm_id[1] . "&sid=" $sid[1], $forum "profile.php?mode=register&agreed=true&sid=" $sid[1] ) );
        
    $captcha explode'|'recognizegetcwd() . "/captch.jpg"$antigate_keyfalse ) );
        
    $post "username=" urlencode$login ) . "&email=" urlencode$email ) . "&new_password=" urlencode$password ) . "&password_confirm=" urlencode$password ) . "&confirm_code=" urlencode$captcha[0] ) . "&icq=&aim=&msn=&yim=&website=" urlencode$url ) . "&location=" urlencode$url ) . "&occupation=" urlencode$url ) . "&interests=" urlencode$url ) . "&signature=" urlencode$ankor ) . "&viewemail=0&hideonline=0&notifyreply=0&notifypm=0&popup_pm=0&attachsig=1&allowbbcode=1&allowhtml=1&allowsmilies=0&language=russian&style=1&timezone=3&dateformat=D+M+d%2C+Y+g%3Ai+a&mode=register&agreed=true&coppa=0&sid=" $sid[1] . "&confirm_id=" $confirm_id[1] . "&submit=%CE%F2%EF%F0%E0%E2%E8%F2%FC";
        
    $rest post$forum "profile.php?sid=" $sid[1], $post$forum "profile.php?mode=register&agreed=true&sid=" $sid[1] );
        if ( 
    preg_match'#class="ge(.*?)">#i'$rest ) ) {
            echo 
    "Успешно в " $forum "<br/>"
        

        
    $i++;
    }
    Код сильно сократил, но основное для реги здесь. Помогите пожалуйста.
     
  2. Yaggi Jah

    Yaggi Jah Постоялец

    Регистр.:
    15 ноя 2006
    Сообщения:
    75
    Симпатии:
    31
    Вверху поставь set_time_limit(0);
     
    komyak нравится это.
  3. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    Не всегда помогает. Да и хостеру может не понравиться =) Может есть ещё вариант?
     
  4. trooll

    trooll PHP кодер

    Регистр.:
    22 дек 2008
    Сообщения:
    503
    Симпатии:
    116
    Собственно исходный код:
    PHP:
    <?PHP
    if (!set_time_limit(0))
    {
         
    ini_set("max_execution_time"0);
    }

    ###[START] KOD

    ###[END] KOD
    ?>
    Если это не работает, вперед разбирать план полетов с хостером.

    Как вариант обхода ограничения исполнения по времни, на хостингах где вообще не дают увеличить время исполнения (сейчас уже наверное таких нет), это рекрсивный вызов скрипта (сам на себя). Но считаю не целесообразными использовать данный способ, проще найти другого хостера.
     
    komyak нравится это.
  5. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    set_time_limit(0);
    ini_set("max_execution_time", 0);
    Можно разбить на части и вызывать поочерёдно каждый скрипт другого, но это как минимум криво..
     
  6. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    Уже и такие мысли возникали. И ставить на крон, что при успешной реге, урл переносился в другой файл или удалялся.
     
  7. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    Самое простое и правильное сменить хостера)
     
  8. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    Shell, так что хостинг я "взял в аренду"
     
  9. Digwnews

    Digwnews Читатель

    Заблокирован
    Регистр.:
    1 мар 2010
    Сообщения:
    127
    Симпатии:
    24
    set_time_limit(0);
    ini_set("max_execution_time", 0);
    Не работает?
     
  10. komyak

    komyak

    Регистр.:
    4 фев 2009
    Сообщения:
    486
    Симпатии:
    187
    Ладно хоть так... Проработал ~500 секунд Хостинг Агава, дурдом...
     
Статус темы:
Закрыта.