Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php CURLOPT_连接超时不工作_Php_Http_Curl_Proxy_Libcurl - Fatal编程技术网

Php CURLOPT_连接超时不工作

Php CURLOPT_连接超时不工作,php,http,curl,proxy,libcurl,Php,Http,Curl,Proxy,Libcurl,我正在学习CURLOPT_CONNECTTIMEOUT,我在这个测试中使用了一个代理,设置了25秒超时,但它从未超时,我不知道为什么。这是我的简单代码 $proxy="124.206.54.251:3128"; $timeout = 25; $url = "http://google.com"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

我正在学习CURLOPT_CONNECTTIMEOUT,我在这个测试中使用了一个代理,设置了25秒超时,但它从未超时,我不知道为什么。这是我的简单代码

$proxy="124.206.54.251:3128";
$timeout = 25;
$url = "http://google.com";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
$headerSent = curl_getinfo($ch, CURLINFO_HEADER_OUT ); 
$returned_msg = curl_exec($ch);
$error = curl_error($ch);
$info= curl_getinfo($ch);
curl_close($ch);

echo "<br>".$returned_msg."<br>".$info['total_time']."<br>".$error; 
$proxy=“124.206.54.251:3128”;
$timeout=25;
$url=”http://google.com";
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_PROXY,$PROXY);
curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
curl_setopt($ch,CURLOPT_头,1);
curl_setopt($ch,CURLINFO_HEADER_OUT,true);
$headerSent=curl\u getinfo($ch,CURLINFO\u HEADER\u OUT);
$returned\u msg=curl\u exec($ch);
$error=curl\u error($ch);
$info=curl\u getinfo($ch);
卷曲关闭($ch);
echo“
”$returned\u msg.“
”$info['total\u time']。“
”$error;

有人能告诉我为什么它从不超时吗?我只想等待25秒,但由于任何原因(例如代理服务器已死亡)它都无法等待,那么它应该超时。

CURLOPT_CONNECTTIMEOUT仅设置连接所需时间的超时。如果您想限制整个请求允许花费的时间,请改用CURLOPT_TIMEOUT。

CURLOPT_CONNECTTIMEOUT仅为连接所需的时间设置超时。如果您想限制整个请求允许占用的时间,请改用CURLOPT_TIMEOUT。

谢谢您的回答,如果我同时使用CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT怎么办?他们会工作吗?我想记下连接所需的时间,我还想允许最多25秒的连接时间。是的,你们可以一起使用。然后,如果您想检查连接所用的时间,您可以从$info数组中获取连接时间。另外,请参阅类似的信息谢谢您的回答,如果我同时使用CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT会怎么样?他们会工作吗?我想记下连接所需的时间,我还想允许最多25秒的连接时间。是的,你们可以一起使用。然后,如果您想检查连接所花费的时间,您可以从$info数组中获取连接时间。另外,请参阅以获取类似信息