我不明白,当我 echo $httpCode 时,我总是得到 0,当我将 $html_brand 更改为损坏的网址时,我期待 404。有什么我想念或不知道的吗?谢谢。
//check if url exist
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $html_brand);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($httpCode == 404) {
echo "The Web Page Cannot Be Found";
return;
}
curl_close($ch);
如果您连接到服务器,那么您可以从中获取返回码,否则它将失败并且您会得到 0。因此,如果您尝试连接到“www.google.com/lksdfk”,您将获得返回码400,如果你直接访问 google.com,你会得到 302(如果你转发到下一页,你会得到 200...我这样做是因为它转发到 google.com.br,所以你可能看不到),如果您访问“googlecom”,您将得到一个 0(未找到主机),因此对于最后一个,没有人可以发回代码。
使用下面的代码进行测试。
<?php
$html_brand = "www.google.com";
$ch = curl_init();
$options = array(
CURLOPT_URL => $html_brand,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
);
curl_setopt_array( $ch, $options );
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ( $httpCode != 200 ){
echo "Return code is {$httpCode} \n"
.curl_error($ch);
} else {
echo "<pre>".htmlspecialchars($response)."</pre>";
}
curl_close($ch);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)