$agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
$ch=curl_init();
curl_setopt ($ch, CURLOPT_URL,$url );
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch,CURLOPT_VERBOSE,false);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_SSLVERSION,3);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);
$page=curl_exec($ch);
//echo curl_error($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
我在我的项目中使用cUrl。我正在获取网站的HTTP CODE。但是当我尝试“asdasd”($ url =“asdasd”)时,返回的HTTP CODE为200。但“asdasd”不是一个网站。为什么HTTP CODE是200?
答案 0 :(得分:1)
您可能希望先从curl_exec
检查返回值。它在the manual中说:
成功时返回
TRUE
,失败时返回FALSE
。但是,如果设置了CURLOPT_RETURNTRANSFER
选项,则会在成功时返回结果,FALSE
会失败。
对于curl_getinfo
,有一个side note:
如果重复使用句柄,则保留此函数收集的信息。这意味着除非此函数在内部覆盖统计信息,否则将返回先前的信息。
因此,HTTP 200可能是先前cURL调用的结果。
答案 1 :(得分:0)
如果您在本地开发并使用自定义托管DNS服务,则可能会发生另一个可能的错误,那么您可能会获得一些像OpenDNS那样的托管错误页面。