我试图制作脚本来检查站点是启动还是关闭。一切正常,但是当网站不是网站时,我的意思是该网站不存在。然后 php 执行加载时间增加。我想以某种方式处理这个问题。如何检查站点是否存在并中断卷曲会话?这是我的脚本:
<?php
$ch = curl_init('http://86.100.69.228/'); // e.g. for this will increase execution time because the site doesn't exists
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_exec($ch);
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $status_code;
curl_close($ch);
?>
您可以通过在 curl_setopt
中设置 cURL 传输的CURLOPT_CONNECTTIMEOUT和CURLOPT_TIMEOUT选项来定义超时。如果网站关闭,cURL 将停止工作,你会抓住它!
如果您想
检查网站是否关闭CURL
可能不是最佳选择,因为您没有检查完整的 URL,例如 http://eample.com/abx.phpx
...当您使用诸如Como http://www.comodo.com/secure-dns/do之类的"安全DNS"之类的服务时,所有网站都会返回200
,因为请求会自动转发以进行验证,因此您将始终使用IP地址加载站点92.242.144.10
搜索92.242.144.10
我的建议只是简单地ping服务器
function ping($host)
{
exec(sprintf('ping -n 2 %s', escapeshellarg($host)), $res, $rval);
return $rval === 0;
}
$result = ping("86.100.69.228");
直接检查插座
function pingSocket($host, $port = 80, $timeout = 3) {
$fsock = fsockopen ( $host, $port, $errno, $errstr, $timeout );
if (! $fsock) {
return FALSE;
} else {
return TRUE;
}
}
$result = pingSocket ( "86.100.69.228" );
大多数时候效果更好