200 HTTP-код в строках без URL
-
30-09-2019 - |
Вопрос
$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);
Я использую завиток в моем проекте. Я получаю HTTP-код веб-сайтов. Но когда я попробую «asdasd» ($ URL = "asdasd"), возвращенный HTTP-код - 200. Но «asdasd» не веб-сайт. Почему HTTP код 200?
Решение
Вы можете проверить возвращаемое значение из curl_exec
первый. В нем говорится руководство:
Возвращается
TRUE
на успех илиFALSE
на неудачу. Однако, еслиCURLOPT_RETURNTRANSFER
Опция установлена, это вернет результат на успех,FALSE
на неудачу.
Для curl_getinfo
это Примечание:
Информация, собранная этой функцией, сохраняется, если ручка повторно используется. Это означает, что если статистика внутренне не переопределяется этой функцией, предыдущая информация возвращается.
Так что HTTP 200 вполне может быть результатом предыдущего вызова скручиваемости.
Другие советы
Другая возможная ошибка может произойти, если вы разрабатываете локальные, и вы используете пользовательские управляемые DNS-сервисы, тогда вы, вероятно, можете получить некоторые управляемые страницы ошибок, такие как OpenDNS.