php实现域名
PHP实现域名相关操作
获取当前访问域名
使用$_SERVER['HTTP_HOST']可以获取当前访问的域名(不含协议和端口):
$currentDomain = $_SERVER['HTTP_HOST'];
echo $currentDomain; // 输出如:example.com
获取完整URL
$_SERVER['SERVER_NAME']获取服务器名称,结合其他信息可构建完整URL:
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https://' : 'http://';
$fullUrl = $protocol . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
域名验证
验证字符串是否符合域名格式:
function isValidDomain($domain) {
return preg_match('/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i', $domain);
}
提取主域名
从子域名中提取主域名:
function getMainDomain($domain) {
$parts = explode('.', $domain);
$count = count($parts);
return ($count >= 2) ? $parts[$count-2] . '.' . $parts[$count-1] : $domain;
}
获取子域名
提取子域名部分:
function getSubdomain($domain) {
$main = getMainDomain($domain);
return str_replace('.' . $main, '', $domain);
}
域名解析
使用gethostbyname()获取IP地址:
$ip = gethostbyname('example.com');
检查域名是否可解析
验证域名是否有效且可解析:
function isDomainResolvable($domain) {
return gethostbyname($domain) !== $domain;
}
批量处理域名
处理多个域名的示例:
$domains = ['example.com', 'test.example.org'];
foreach ($domains as $domain) {
if (isValidDomain($domain)) {
echo "$domain resolves to: " . gethostbyname($domain) . "\n";
}
}






