У меня есть каталог сайтов, и я хочу исключить тех, кто дает код 404 или 403 (соответственно не может показать ничего интересного для пользователей). Но использование file_get_contents или функций curl в php даже с заголовками запросов иногда дает ответ 404 или 403, даже если я вижу обычную страницу через браузер. Что я могу использовать для сбора правильных кодов (чтобы убедиться, что на сайте нет контента)?
Попробуйте эту функцию
<?php
function Visit($url){
$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);
if($httpcode>=200 && $httpcode<308) return true;
else return false;
}
if (Visit("http://www.google.com"))
echo "Website OK"."n";
else
echo "Website DOWN";
?>
отредактировано в соответствии с определением кодов статуса W3
Других решений пока нет …