发送curl而不等待响应php

时间:2017-09-26 00:30:40

标签: php curl

我目前正在制作剧本,我需要制作一些卷曲帖子。问题是脚本需要执行很多这些请求,我担心这会影响性能和响应时间。请注意,我只需要制作卷曲帖子,我不需要答案。 这是我正在使用的代码:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $post_url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_USERAGENT, 'api');
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FORBID_REUSE, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 1);
curl_setopt($ch, CURLOPT_DNS_CACHE_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
curl_close($ch);

我使用正确的代码吗?此代码是否仅发布请求并关闭,不等待任何响应? 先谢谢你们的帮助。

3 个答案:

答案 0 :(得分:1)

您可以使用此功能,效果很好! :)

function systemCurl($url, $post_array, $headers=null, $check_ssl=true) {
  if(!is_null($headers)){
    foreach($headers as $key => $val){
      $head .= " -H '".$key.":". $val."' ";
    }
  }
  $cmd = "curl -X POST ".$head;
  $cmd.= " -d '" . json_encode($post_array) . "' '" . $url . "'";
  if(!$check_ssl){
    $cmd.= "'  --insecure";
  }
  $cmd .= " > /dev/null 2>&1 &";
  exec($cmd, $output, $exit);
  return $exit == 0;
}

答案 1 :(得分:0)

如果可以使用shell_exec函数,则可以使用此功能:

exec('curl http://example.com/example > /dev/null 2>&1 &');

答案 2 :(得分:-1)

我建议你使用jquery ajax,这样你就不需要关心处理时间了

$.ajax("yourFile.php");

其中yourFile.php包含带有数据的cUrl php脚本