<?php
// 配置域名检测函数
function isValidDomain($domain) {
// 使用正则表达式检查域名格式
$pattern = '/^(?!\-)[A-Za-z0-9\-]{1,63}(?<!\-)\.[A-Za-z]{2,}$/';
return preg_match($pattern, $domain) === 1;
}
function checkDomainAvailability($domain) {
// 通过 DNS 查询来检测域名是否可用
$dnsRecord = dns_get_record($domain);
return empty($dnsRecord);
}
// 处理用户输入
if (isset($_GET['domain'])) {
$domain = filter_var($_GET['domain'], FILTER_SANITIZE_STRING);
if (isValidDomain($domain)) {
if (checkDomainAvailability($domain)) {
echo '域名 "' . htmlspecialchars($domain) . '" 可用。';
} else {
echo '域名 "' . htmlspecialchars($domain) . '" 已被占用。';
}
} else {
echo '无效的域名格式。';
}
} else {
echo '请提供域名。';
}
?>
这个 PHP 代码示例实现了一个简单的域名有效性检测系统,包括以下功能:
-
域名格式验证:
- 使用正则表达式
isValidDomain()
函数验证用户输入的域名格式是否符合标准。正则表达式检查确保域名不以-
开头或结尾,长度符合域名规则,并且只包含字母、数字和短横线。
- 使用正则表达式
-
域名可用性检查:
- 通过
dns_get_record()
函数在checkDomainAvailability()
中检查域名是否已被占用。该函数查询域名的 DNS 记录,如果返回结果为空,则表示域名可能是可用的。
- 通过
-
处理用户输入:
- 从 URL 参数中获取域名,使用
filter_var()
函数进行输入过滤,防止恶意输入。然后调用上面两个函数来验证域名的格式和可用性,并输出结果。
- 从 URL 参数中获取域名,使用
使用说明:
- 将该代码保存为
domain_check.php
。 - 通过浏览器访问
domain_check.php?domain=example.com
,替换example.com
为要检测的域名。 - 页面将显示域名是否符合格式规范以及是否可用。