所以我尝试检查一个网站是否因卷曲而上升或下降。所以这是我的逻辑
example.com
http
协议添加到网址,然后按照curl 所以这里有一些代码
if(isset($_GET['url'])){
$domain = $_GET['url'];
//Clean up domain
$input = trim($domain, '/');
// If scheme not included, prepend it
if (!preg_match('#^http(s)?://#', $input)) {
$input = 'http://' . $input;
}
$urlParts = parse_url($input);
// remove www
$domain = preg_replace('/^www\./', '', $urlParts['host']);
function addhttp($domain) {
if (!preg_match("~^(?:f|ht)tps?://~i", $domain)) {
$domain = "http://" . $domain;
}
return $domain;
}
$domain = addhttp($domain);
date_default_timezone_set('America/New_York');
$date = date('m/d/Y h:i:s a', time());
}
我的功能是检查网站是上升还是下降
function isDomainAvailible($domain){
if(!filter_var($domain, FILTER_VALIDATE_URL)){
return false;
}
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curlInit, CURLOPT_FOLLOWLOCATION, true);
$response = curl_exec($curlInit);
curl_close($curlInit);
if($response)return true;
return false;
}
现在的问题是,当我做一个拥有SSL的网站,因此有一个重定向时,我似乎总是得到该网站,即使它已经关闭。有任何想法吗?我的逻辑是否朝着正确的方向发展?
答案 0 :(得分:1)
function isDomainAvailible($domain){
if(!filter_var($domain, FILTER_VALIDATE_URL)){
return false;
}
$curlInit = curl_init($domain);
curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curlInit,CURLOPT_HEADER,true);
curl_setopt($curlInit,CURLOPT_NOBODY,true);
curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curlInit, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curlInit, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curlInit, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curlInit,CURLOPT_FAILONERROR,true);
$m=true;
if(curl_exec($curlInit) === false){ $m=false; echo "Error: ".curl_error($curlInit);}
curl_close($curlInit);
return $m;
}
答案 1 :(得分:0)
您将CURLOPT_FOLLOWLOCATION
设置为TRUE
。
该选项的名称暗示:跟随站点发送的重定向标头。您需要删除此选项(或明确将其设置为FALSE
)至"验证"实际的网址。
在旁注中:无论是否存在指向具有相同IP地址的域名的实际DNS www.
记录,您都将剥离域名的A
部分。在执行此操作时,您可能会从其他计算机获得答案。