Вопрос

$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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top