当 curl 运行时,页面执行速度非常慢


Page executes very slow while curl runs

在这里我解释有关我的问题的详细信息首先检查下面的代码

$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"无效或没有这样的 URL,那么问题是什么。

我有一个页面写了上面。 执行代码时,页面花费太多时间。 但是如果我在 5 行以上发表评论,那么我的页面执行速度会更快。

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

谢谢桑吉布

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

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

> 当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 超时设置。*