Dragon
主机之家测评主机之家测评  2019-08-21 22:45 主机之家测评 隐藏边栏 |   抢沙发  26 
文章评分 0 次,平均分 0.0

CURLOPT_TIMEOUT 设置允许执行的最长秒数

CURLOPT_TIMEOUT_MS 设置 cURL 允许执行的最长毫秒数

CURLOPT_CONNECTTIMEOUT 在发起连接前等待的时间,如果设置为 0,则无限等待

CURLOPT_CONNECTTIMEOUT_MS 尝试连接等待的时间,以毫秒为单位。如果设置为 0,则无限等待

CURLOPT_TIMEOUT_MS 在 cURL 7.16.2 中被加入。从 PHP 5.2.3 起可使用。

所以使用的时候请先查看 libcurl 版本 curl --version。

但是这个有个 bug,如果时间小于 1000 毫秒也就是 1 秒的话,会立马报错,查看下面说明

  If you want cURL to timeout in less than one second, you can use CURLOPT_TIMEOUT_MS, although there is a bug/"feature"  on "Unix-like systems" that causes libcurl to timeout immediately if the  is   
  if (!isset($_GET['foo'])) {      // Client      $ch = curl_init('http://localhost/timeout.php?foo=bar');      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);      curl_setopt($ch, CURLOPT_NOSIGNAL, 1);      curl_setopt($ch, CURLOPT_TIMEOUT_MS, 200);      $data = curl_exec($ch);      $curl_errno = curl_errno($ch);      $curl_error = curl_error($ch);      curl_close($ch);      if ($curl_errno > 0) {          echo "cURL Error ($curl_errno): $curl_errorn";      } else {          echo "Data received: $datan";      }      } else {          // Server          sleep(10);          echo "Done.";      }

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

发表评论

扫一扫二维码分享