我对返回cURL响应代码错误感到有些奇怪。以下代码,尽管远程主机抛出404,但不会出现cURL错误。为什么呢?
$ch = curl_init('http://www.google.com/13ewsdasd'); //<-- definitely a 404
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_exec($ch) ? 'All OK' : 'Error: '.curl_error($ch); //'All OK'
我发现this answer建议将curl_get_Info
与CURL_INFO_HTTP_CODE
标志一起使用,但也没有任何欢乐 - 这只是给了我&#34; 0&#34;。
$ch = curl_init('http://www.google.com/13ewsdasd'); //<-- still a 404
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE); //<-- 0
我似乎记得以前用cURL检测错误的问题。我错过了一些明显的东西吗我只想检测远程服务器何时抛出404或500.
另一个答案建议通过get_headers()
执行此操作,但为了查找第一个请求的响应代码,必须触发第二个单独的请求似乎很愚蠢。