一
<?php
function isWebsiteAccessible($url) {
// 创建一个cURL资源
$ch = curl_init();
// 设置URL和其他cURL选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
// 执行cURL请求,获取响应
$response = curl_exec($ch);
// 获取cURL请求的HTTP状态码
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
// 关闭cURL资源
curl_close($ch);
// 判断网站是否能够正常访问
if ($httpCode >= 200 && $httpCode < 300) {
return true;
} else {
return false;
}
}
// 测试网站是否能够正常访问
$url = "网站";
if (isWebsiteAccessible($url)) {
echo "网站可以正常访问";
} else {
echo "网站无法访问";
}
?>
二
<?php
function isWebsiteAccessible($url) {
// 检查URL是否可访问
$headers = @get_headers($url);
// 检查是否存在重定向
if ($headers && preg_match('/^HTTP\/\d\.\d\s+(301|302)/', $headers[0])) {
// 获取重定向的URL
$location = '';
foreach ($headers as $header) {
if (stripos($header, 'Location:') === 0) {
$location = trim(substr($header, 9));
break;
}
}
// 处理重定向的URL
if (!empty($location)) {
return isWebsiteAccessible($location);
}
}
// 检查是否为HTTPS网站
if ($headers && preg_match('/^HTTP\/\d\.\d\s+200/', $headers[0])) {
$isHttps = false;
foreach ($headers as $header) {
if (stripos($header, 'Strict-Transport-Security:') === 0) {
$isHttps = true;
break;
}
}
if ($isHttps) {
// 处理HTTPS网站
// 可以使用curl或其他方式进行进一步处理
// 例如:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
}
}
// 检查是否为域名未解析
if ($headers && preg_match('/^HTTP\/\d\.\d\s+503/', $headers[0])) {
// 处理域名未解析
// 可以返回错误信息或其他处理方式
return false;
}
// 网站可正常访问
return true;
}
// 示例用法
$url = '网站';
if (isWebsiteAccessible($url)) {
echo '网站可正常访问';
} else {
echo '网站无法访问';
}
?>
三
<?php
function isWebsiteAccessible($url) {
// 检查URL是否为空
if (empty($url)) {
return false;
}
// 添加协议前缀,如果没有指定协议
if (!preg_match("~^(?:f|ht)tps?://~i", $url)) {
$url = "http://" . $url;
}
// 解析URL
$parsedUrl = parse_url($url);
// 检查域名是否解析
$ip = gethostbyname($parsedUrl['host']);
if ($ip == $parsedUrl['host']) {
return false;
}
// 检查域名拼写是否正确
if (!checkdnsrr($parsedUrl['host'], 'A') && !checkdnsrr($parsedUrl['host'], 'AAAA')) {
return false;
}
// 检查是否重定向
$headers = get_headers($url);
if ($headers && preg_match('/^HTTP\/\d\.\d\s+(301|302)/', $headers[0])) {
return false;
}
// 检查是否为HTTPS网站
if ($parsedUrl['scheme'] == 'https') {
// 使用cURL进行HTTPS请求
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_NOBODY, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode != 200) {
return false;
}
}
return true;
}
// 测试示例
$url = "域名";
if (isWebsiteAccessible($url)) {
echo "网站可以正常访问";
} else {
echo "网站无法访问";
}
?>