dqlb38410 2016-03-14 14:39
浏览 420
已采纳

如何等待curl(php)执行3秒..?

$testingURL = "https://www.testing.com?......";
do {
    $lastData = "";
    curl_setopt($ch, CURLOPT_URL,$testingURL);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (AppleWebKit/537.3e/37.0.2062.124 Safari/537.36.....");
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=testuser&password=testpwd'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_curl);
    curl_setopt($ch, CURLOPT_REFERER, "www.test...com");
    $result = curl_exec($ch);
    // sleep(3);
    preg_match_all('/name="_checkkey".*?<\/td>/s',$result,$lastData);
    $lastData[1] = preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $lastData[1]);
    $testingURL = "https://www.testing.com?_chkKey=".$lastData[1][0]."&chiId=".$lastData[1][1];

} while (isset($lastData[1][1]) && $lastData[1][1] == "checkOneMoreTime");

(Note : in my code i want to stop my execution upto 3 seconds

if i give sleep(3) (will it work), in $testingURL will test 2 to 3 seconds and then form will submit, at the same time me too want execute loop again,

  • 写回答

1条回答 默认 最新

  • dto52236 2016-03-15 09:01
    关注
    do {
    $lastData = "";
    $result = "";
    curl_setopt($ch, CURLOPT_URL,$testingURL);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (AppleWebKit/537.3e/37.0.2062.124 Safari/537.36.....");
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=testuser&password=testpwd'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
    curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers_curl);
    curl_setopt($ch, CURLOPT_REFERER, "www.test...com");
    $result = curl_exec($ch);
    sleep(3);
    $testingURL = "";
    preg_match_all('/name="_checkkey".*?<\/td>/s',$result,$lastData);
    $lastData[1] = preg_replace('/[^a-zA-Z0-9_ %\[\]\.\(\)%&-]/s', '', $lastData[1]);
    $testingURL = "https://www.testing.com?_chkKey=".$lastData[1][0]."&chiId=".$lastData[1][1];    }    while (isset($lastData[1][1]) && $lastData[1][1] == "checkOneMoreTime");
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#sql#的问题:#情况描述 在用vs对项目进行调试时,出现找不到网络路径,然后查看SQL配置工具,发现SQL服务显示远程调用过程失败(相关搜索:防火墙)
  • ¥15 主要进行描述泥浆在管路不同区段泥浆的密度不相同,泥浆的密度有高有低,此时管路的摩阻分布需要怎么计算,(标签-matlab)
  • ¥40 通过编制程序计算圆管内层流充分发展对流换热,参数如图5-4,以及公式5-16所示,要求用表5-6对程序计算准确性进行验证
  • ¥20 该学习哪个编程语言? AI会取代程序员吗?
  • ¥15 ensp如何拼通IP地址
  • ¥15 saber软件导入Ibis模型报错
  • ¥15 商城生产日期批次库存问题
  • ¥15 esp8266控制共阳极wrgb灯板无法关闭所有led灯
  • ¥100 python读取速度问题
  • ¥15 stm32f407使用DMA问题