Я пытался создать небольшую PHP-программу, которая будет иметь форму HTML, в которой пользователь будет вводить URL-адрес и нажимать кнопку «Отправить». Я пытался получить возвращенный HTTP-код из URL через CURL. Я понял, что возвращаемое значение 0 дается в двух ситуациях: 1) когда домен существует, но вы не можете подключиться к серверу. Сервер отказывается от соединения. 2) Когда хост не существует
Мой вопрос: как я могу быть уверен в любом из этих двух случаев, когда я получаю HTTP-код, равный 0?
Еще лучше, что должнопо моей логике, чтобы убедиться, что URL, указанный пользователем, не только правильно сформирован, но и принадлежит действующему веб-сайту, существующему в Интернете?
Мой код указан ниже:
$html_brand = "www.google.com/ihhhkhkj";
$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 == 404 ){
echo "Return code is {$httpCode} \n"
.curl_error($ch);
$this->form_validation->set_message("url_check", "URL is well-formed but still not valid!");
return FALSE;
}
else if($httpCode == 0)
{
$this->form_validation->set_message("url_check", "Could not connect to the URL given! Connection timed out!");
//is it a server timeout or non-existent site?
return FALSE;
}
curl_close($ch);
}