Таймаут на время работы скрипта

Discussion in 'PHP' started by ant2003, 22 Feb 2009.

  1. ant2003

    ant2003 New Member

    Joined:
    21 Feb 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    У меня скрипт на php, который в цикле на смотрит и обрабатывает страницы с одного сайта, но работает почему-то ток 5 мин, хотя поставил
    set_time_limit(0);
    ini_set("max_execution_time",0);
    ini_set("ignore_user_abort",1);
    менял настройки php.ini, phpinfo показывает что меняется, а скрипт все равно ток 5 мин работает, меньше тоже сделать не получается. В чем может быть дело понять никак немогу!
     
  2. Zedi

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

    Joined:
    6 Jun 2007
    Messages:
    316
    Likes Received:
    120
    Reputations:
    13
    выведи phpinfo в скрипте посмотри что там написано насчет max_execution_time, и посмотри вдруг функция set_time_limit отключена
     
  3. ant2003

    ant2003 New Member

    Joined:
    21 Feb 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    safe_mode = off
    disable_functions = no value
    max_execution_time = 0
    max_input_time=-1
     
  4. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    на бесплатных хостах это:

    set_time_limit(0);
    ini_set("max_execution_time",0);
    ini_set("ignore_user_abort",1);

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

    попробуй через .htaccess:

    php_value max_execution_time 0
     
  5. ant2003

    ant2003 New Member

    Joined:
    21 Feb 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    нифига не помогло, думал мож в cUrl дело поставил curl_setopt($ch,CURLOPT_TIMEOUT,1);
    все равно 5 мин пашет, уже смех начинает рабирать, похоже плевать на все настройки 5 мин и все :)
     
  6. ant2003

    ant2003 New Member

    Joined:
    21 Feb 2009
    Messages:
    7
    Likes Received:
    1
    Reputations:
    0
    <?
    set_time_limit(0);
    ini_set("max_execution_time",0);
    ini_set("ignore_user_abort",1);
    $url = "http://atlantajobpost.com/Employers.php";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch,CURLOPT_TIMEOUT,1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "username=123123123&password=123123123&dologin=1231231231");
    curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
    $result = curl_exec($ch);
    $f = fopen("./adr.txt","wt");
    for ($i = 10000; $i <= 30000; $i++) {
    $url = "http://atlantajobpost.com/Employers/Emp_Resume_View.php?resumenumber=1&resumeID=".$i;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, 0);
    curl_setopt($ch,CURLOPT_TIMEOUT,1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
    $result = curl_exec($ch);
    $pattern = '!<SPAN class="resumetext_header_big">(.*?)</SPAN>!';
    preg_match_all($pattern, $result, $outName);
    $outName[0][0] = str_replace('<SPAN class="resumetext_header_big">','',$outName[0][0]);
    $outName[0][0] = str_replace('</SPAN>','',$outName[0][0]);
    $pattern = '/\w+@\w+.\w+/';
    preg_match_all($pattern, $result, $outMail);
    // echo "<br>",$outName[0][0]," : ",$outMail[0][0];
    fseek($f,0,SEEK_END);
    $s= $i." ".$outName[0][0]." : ".$outMail[0][0]."\n\n";
    fwrite($f,$s);
    }
    fclose($f);
    ?>
     
  7. _==wolf==_

    _==wolf==_ Elder - Старейшина

    Joined:
    29 May 2008
    Messages:
    127
    Likes Received:
    38
    Reputations:
    6
    offtop curl_setopt($ch, CURLOPT_POST, 0); не нужно, если этой строки нет то параметр автоматически в 0
     
  8. kik8888

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

    Joined:
    29 Feb 2008
    Messages:
    45
    Likes Received:
    6
    Reputations:
    -4
    ant2003, возможно у тебя скрипт убивается из за нехватки ресурсов. Если есть возможность, запусти скрипт через ssh и посмотри, если в конце когда скрипт остановиться напишут killed, то так оно и есть.