PHP cURL - 限制执行时间

时间:2015-03-23 09:19:21

标签: php web-services curl connection-timeout

我们正在使用网络服务,但有时候,他们没有回应,他们的回复时间太长。

如果超过1秒钟,如何停止cURL?

我试过了:

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);

我还试图在我的服务器和webservice之间创建一个“临时页面”:我的服务器调用一个临时页面:

set_time_limit(1);
ini_set('max_execution_time', 1);

这个临时页面用curl调用webservice本身,但仍然没有。如果我的网络服务的执行时间为10秒,我将不得不等待10秒钟。

有什么想法吗?

1 个答案:

答案 0 :(得分:6)

有一个最好的解决方案。

Setting Curl's Timeout in PHP

请参阅文档:http://www.php.net/manual/en/function.curl-setopt.php

  

CURLOPT_CONNECTTIMEOUT - 尝试连接时等待的秒数。使用0无限期等待   CURLOPT_TIMEOUT - 允许cURL函数执行的最大秒数   curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT,0);
  curl_setopt($ ch,CURLOPT_TIMEOUT,400); //以秒为单位的超时

另外不要忘记放大php脚本自我执行时间:

  

参数或者set_time_limit(0); //以无穷大为例