php如何在脚本中添加暂停?

时间:2014-10-22 12:26:22

标签: php curl

我们有一个代码:

<?php 
function cURL_AutonavigatorRu($level = false, $model_id = false){
    #http://www.autonavigator.ru
    $ch = curl_init('http://www.autonavigator.ru/dispatcher.pl');
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36"); 
    $headers = array
    (
        'Accept: application/json',
        'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4',
        'Accept-Encoding: gzip,deflate',
        'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7'
    ); 

    curl_setopt($ch, CURLOPT_HTTPHEADER,$headers); 
    curl_setopt($ch, CURLOPT_REFERER, "http://www.autonavigator.ru/my/offer_add/");

    if($level == '1'){
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'class=list&method=make&show_all=1&vehicle=car&type=used');
    }
    elseif($level == '2' && $model_id){
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'class=list&method=model&show_all=1&vehicle=car&type=used&make_id='.$model_id);
    }
    elseif($level == '3' && $model_id){
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'class=list&method=modif&show_all=1&model_id='.$model_id);
    }
    else{
        curl_setopt($ch, CURLOPT_POSTFIELDS, 'class=list&method=modif&show_all=1&model_id='.$model_id);
    }

    curl_setopt($ch, CURLOPT_ENCODING , "gzip");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $result = curl_exec($ch);
    curl_close($ch);

    $json = json_decode(iconv("windows-1251","utf-8",$result), true);
    return $json['list'];
}


$ArrAuto = cURL_AutonavigatorRu('1');

foreach($ArrAuto as $auto) {

    echo $auto['value'].'<br>';


    //sleep(2);
    $AllModif1 = cURL_AutonavigatorRu('2',$auto["id"]);
    var_dump($AllModif1);
    echo '<br><br>----------------------------------<br><br>';

}

我们遇到了问题 - 网站阻塞卷曲并且没有一次给出每个$AllModif1 = cURL_AutonavigatorRu('2',$auto["id"]);的结果(在curl中我们得到null)。

请告诉我如何制作周期foreach($ArrAuto as $auto)每5秒钟工作一次的脚本?

P.S。:如何在周期之间暂停4次?

P.P.S。:我们知道睡眠()但是我没有得到结果,请看prntscr.com/4ylm9y

5 个答案:

答案 0 :(得分:2)

使用sleep

foreach($ArrAuto as $auto){
  //Your amazing code here

  sleep(4);
}

答案 1 :(得分:1)

您应该检查sleep()功能

答案 2 :(得分:0)

在你的foreach循环中添加sleep(4);

答案 3 :(得分:0)


只需在sleep(5);

中添加foreach()即可

答案 4 :(得分:0)

添加以下内容:

sleep(4);

此处有更多信息:http://php.net/manual/en/function.sleep.php

相关问题