分析
在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/lksdfk
时,你会收到一个400的状态码,如果你连接到google
,你会收到一个302的状态码(如果继续访问的话,将会收到200的状态码,因为被重定向到了www.google.hk
),如果你访问googlecom
,你会收到一个0状态码,并提示找不到host。
错误的详细原因可以通过函数curl_error()
进行查询。
参考
- PHP cURL HTTP CODE return 0
- HTTP权威指南
更多推荐
PHP中cURL的curl_getinfo函数返回的CURLINFO_HTTP_CODE是0
发布评论