php curl访问未知url,为什么curl_exec没有返回false,echo应该输出失败

时间:2017-11-13 05:59:29

标签: php curl

enter image description here

curl access unknown url,为什么curl_exec返回true.It输出失败。

2 个答案:

答案 0 :(得分:0)

$url = 'http://fvsfdfsdfsdfsfse';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
$result = curl_exec($curl);
print_r($result);
echo curl_error($curl);
curl_close($curl);

if($result == false) {
    echo 'failed';
    return;
}
echo 'succeed';
return;

答案 1 :(得分:0)

您可能使用了一个糟糕的DNS,它实际上并没有为不存在的域返回NXDOMAIN,而是将您重定向到一些糟糕的广告服务器。 DNS正在执行此操作包括OpenDNS,Freenom DNS和一些由病毒设置的DNS,iirc。

尝试做

curl_setopt_array($ch,array(CURLOPT_DNS_LOCAL_IP4=>'8.8.8.8',CURLOPT_DNS_LOCAL_IP6=>'2001:4860:4860:0:0:0:0:8888'));

第一。这应该强制curl使用GoogleDNS,这并不像那样做。

但请注意,这些标志首先在版本7.0.7中添加到PHP