在 PHP 中使用 cURL 发送 HTTP 请求时,可以通过设置 CURLOPT_TIMEOUT 选项来设置请求超时时间,以确保在请求处理时间过长或者网络问题造成的请求延迟的情况下,程序不会一直等待而导致阻塞。
下面是一个简单的例子,展示如何设置 curl 请求的超时时间:
$url = "http://example.com";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 10); // 设置超时时间为 10 秒
$response = curl_exec($curl);
curl_close($curl);
if ($response === false) {
echo "cURL Error: " . curl_error($curl);
} else {
echo $response;
在上面的例子中,我们通过设置 CURLOPT_TIMEOUT 选项,将超时时间设置为 10 秒,如果请求在 10 秒内没有得到响应,cURL 将会抛出一个超时错误。
需要注意的是,curl 的超时时间是指整个请求的时间,包括 DNS 解析、连接建立、发送请求和等待响应等过程。如果您希望分别设置 DNS 解析时间、连接时间和等待时间的超时时间,可以分别使用 CURLOPT_CONNECTTIMEOUT、CURLOPT_TIMEOUT_MS 和 CURLOPT_NOSIGNAL 选项来实现。
希望这个回答能够解决您的问题。