php实现域名
PHP实现域名相关功能
获取当前访问的域名
使用$_SERVER['HTTP_HOST']可以获取当前访问的域名(不含协议和路径):
$currentDomain = $_SERVER['HTTP_HOST'];
echo $currentDomain; // 输出类似:example.com
提取域名各部分
使用parse_url()函数可以分解URL的各个组成部分:
$url = 'https://www.example.com/path?query=string';
$parsed = parse_url($url);
$domain = $parsed['host']; // 获取完整域名
验证域名格式
使用filter_var()函数验证域名格式是否合法:
$domain = 'example.com';
if (filter_var($domain, FILTER_VALIDATE_DOMAIN)) {
echo "域名格式有效";
} else {
echo "域名格式无效";
}
获取根域名(主域名)
通过自定义函数提取主域名部分:

function getRootDomain($url) {
$host = parse_url($url, PHP_URL_HOST);
$parts = explode('.', $host);
$count = count($parts);
return ($count >= 2) ? $parts[$count-2] . '.' . $parts[$count-1] : $host;
}
域名解析(DNS查询)
使用dns_get_record()函数查询域名的DNS记录:
$records = dns_get_record('example.com');
print_r($records); // 输出DNS记录数组
检查域名是否可注册
通过WHOIS查询或API接口检查域名注册状态(需要第三方服务):

function isDomainAvailable($domain) {
$apiUrl = "https://api.whois.com/v1/domains/availability?domain=$domain";
$response = file_get_contents($apiUrl);
$data = json_decode($response, true);
return $data['available'] ?? false;
}
生成子域名
动态生成子域名字符串:
$mainDomain = 'example.com';
$subdomain = 'shop';
$fullDomain = $subdomain . '.' . $mainDomain;
域名重定向
使用PHP头函数实现域名重定向:
header("Location: https://newdomain.com");
exit;
获取域名SSL证书信息
使用流上下文获取SSL证书信息:
$domain = 'example.com';
$context = stream_context_create(["ssl" => ["capture_peer_cert" => true]]);
$client = stream_socket_client("ssl://$domain:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT, $context);
$cert = stream_context_get_params($client)['options']['ssl']['peer_certificate'];
$certInfo = openssl_x509_parse($cert);
print_r($certInfo);
这些方法涵盖了PHP中处理域名的常见需求,可以根据具体场景选择合适的方法实现。






