Php 检查网站是否存在,为google.com返回false
我使用以下方法检查网站是否存在:Php 检查网站是否存在,为google.com返回false,php,curl,Php,Curl,我使用以下方法检查网站是否存在: function urlExists($url = NULL) { if ($url == NULL) return false; $ch = curl_init($url); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURN
function urlExists($url = NULL) {
if ($url == NULL) return false;
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($ch);
$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpcode >= 200 && $httpcode < 300){
return true;
} else {
return false;
}
}
函数urlExists($url=NULL){
如果($url==NULL),则返回false;
$ch=curl\u init($url);
curl_setopt($ch,CURLOPT_超时,5);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$data=curl\u exec($ch);
$httpcode=curl\u getinfo($ch,CURLINFO\u HTTP\u代码);
卷曲关闭($ch);
如果($httpcode>=200&$httpcode<300){
返回true;
}否则{
返回false;
}
}
对于
google.com
,它似乎返回false,但对于www.google.com
,则返回false。为什么?谷歌有一个页面重定向。所以也要使用这个选项
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
如果您的链接包含https://,请使用:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
为什么不检查一下回复并找出答案呢?我想google.com会重定向到www.google.com,而你没有检查。你对存在的定义是狭义的
CURL\u FOLLOWLOCATION
google.com可能会返回301或302状态。