$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);

我在项目中使用卷发。我正在获取网站的HTTP代码。但是,当我尝试“ asdasd”($ url =“ asdasd”)时,返回的HTTP代码为200。但是“ ASDASD”不是网站。为什么HTTP代码为200?

有帮助吗?

解决方案

您可能想从中检查回返回值 curl_exec 第一的。它说 手册:

返回 TRUE 关于成功或 FALSE 失败。但是,如果 CURLOPT_RETURNTRANSFER 设置选项,它将返回成功的结果, FALSE 失败。

为了 curl_getinfo 有个 边注:

如果手柄被重复使用,则保留此功能收集的信息。这意味着,除非统计量被此功能内部覆盖,否则将返回上一个信息。

因此,HTTP 200很可能是先前的卷曲调用的结果。

其他提示

如果您在本地开发并使用自定义的托管DNS服务,可能会发生另一个可能的错误,那么您可能会像Opendns一样获得一些托管错误页面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top