理解PHP中CURL返回的HTTP代码并验证URL
我试图制作一个小的PHP程序,它将有一个HTML表单,用户将在其中输入URL并单击submit。我试图通过CURL从URL获取返回的HTTP代码。我推测在两种情况下会给出0的返回值:1)当域存在但无法连接到服务器时。服务器拒绝连接。2) 当主机不存在时 我的问题是,当我得到一个等于0的HTTP代码时,如何确定这两种情况之一 更好的是,我的逻辑应该是什么,以确保用户提供的URL不仅格式正确,而且属于互联网上存在的有效网站 我的代码如下:理解PHP中CURL返回的HTTP代码并验证URL,php,curl,Php,Curl,我试图制作一个小的PHP程序,它将有一个HTML表单,用户将在其中输入URL并单击submit。我试图通过CURL从URL获取返回的HTTP代码。我推测在两种情况下会给出0的返回值:1)当域存在但无法连接到服务器时。服务器拒绝连接。2) 当主机不存在时 我的问题是,当我得到一个等于0的HTTP代码时,如何确定这两种情况之一 更好的是,我的逻辑应该是什么,以确保用户提供的URL不仅格式正确,而且属于互联网上存在的有效网站 我的代码如下: $html_brand = "www.goo
$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);
}
如果HTTP代码为0,则可以使用来找出
curl\u exec
调用的问题所在 使用它,您至少应该能够弄清楚这是否是一个域问题。