gpt4 book ai didi

php - 由于 SSL,无法检查站点是启动还是关闭

转载 作者:太空宇宙 更新时间:2023-11-03 14:12:28 24 4
gpt4 key购买 nike

所以我试着用 curl 检查网站是正常运行还是关闭。所以这是我的逻辑

  • 去掉协议(protocol)的 URL 和其他任何东西,只留下主机。 example.com
  • 在 URL 中添加 http 协议(protocol),然后使用 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 的网站并因此进行重定向时,我似乎总是认为该网站已启动,即使它已关闭。有任何想法吗?我的逻辑方向正确吗?

最佳答案

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;
}

关于php - 由于 SSL,无法检查站点是启动还是关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27493998/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com