curl运行时页面执行速度很慢

时间:2014-11-20 13:42:15

标签: php curl

这里我解释一下我的问题的细节 首先检查以下代码

$ch = curl_init('http://example123.com');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
    $result = @curl_exec($ch);

现在我的问题是如果“http://example123.com”无效或者没有这样的网址,那么问题是什么。

我有一个页面,上面写着。执行代码时,页面需要花费太多时间。但如果我在5行以上评论,那么我的页面执行得更快。

任何人都可以告诉我背后的原因是什么以及为什么页面执行速度很慢。

感谢Sanjib

2 个答案:

答案 0 :(得分:0)

您的脚本等待响应(default_socket_timeout可能需要60秒。)

您应该设置curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);以使脚本从http://example123.com/重定向到http://ww38.example123.com/,就像在浏览器中一样。

答案 1 :(得分:0)

cUrl请求遇到INVALID URI时,它会等到达到默认连接超时,这会使页面加载速度变慢。

lib/connect.h(如果是Linux服务器)

中设置的默认连接超时

您可以在此处进行更改

#define DEFAULT_CONNECT_TIMEOUT 300000 /* milliseconds == five minutes */

或者您可以明确在您的代码中设置

curl_setopt( $c, CURLOPT_CONNECTIONTIMEOUT, 100 ); # Or curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS ,0); 

curl_setopt($ch, CURLOPT_TIMEOUT, 400); # timeout in seconds

CURLOPT_CONNECTTIMEOUT :尝试连接时等待的秒数。使用0无限期等待。

CURLOPT_TIMEOUT :允许cURL函数执行的最大秒数。

***(如果您使用PHP作为fastCGI应用程序,请确保检查fastCGI超时设置。)*