牛骨文教育服务平台(让学习变的简单)
博文笔记

PHP中cURL的curl_getinfo函数返回的CURLINFO_HTTP_CODE是0

创建时间:2016-08-01 投稿人: 浏览次数:8970

分析

在PHP中使用cURL获取网页时,可以通过函数curl_getinfo()来获取http状态码。

$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

我们期望的状态码是200,而且HTTP标准也对其它状态码做了一些定义。

总体范围 已定义类别 类别
100~199 100~101 信息
200~299 200~206 成功
300~399 300~305 重定向
400~499 400~415 客户端错误
500~599 500~505 服务端错误

但是curl_getinfo()有时候会给我们返回状态是0的状态码,原因如下,

如果你已经连接到服务器上了,那么你将会返回一个状态码;否则,将会失败并返回一个0。

所以,如果你连接到www.google.com/lksdfk时,你会收到一个400的状态码,如果你连接到google.com,你会收到一个302的状态码(如果继续访问的话,将会收到200的状态码,因为被重定向到了www.google.com.hk),如果你访问googlecom,你会收到一个0状态码,并提示找不到host。

错误的详细原因可以通过函数curl_error()进行查询。

参考

  • PHP cURL HTTP CODE return 0
  • HTTP权威指南
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。