PHP 判断访问域名的方法详解
在网站开发过程中,有时候我们需要根据用户访问的域名来执行不同的操作,比如展示不同的页面内容或者应用不同的功能,PHP 提供了多种方法来帮助我们判断访问域名,以下是一些常见的方法和示例。

使用 $_SERVER[‘HTTP_HOST’]
$_SERVER['HTTP_HOST'] 是一个包含用户请求的原始主机名的数组,我们可以通过这个变量来获取访问域名。
示例:
<?php
// 获取访问域名
$host = $_SERVER['HTTP_HOST'];
// 判断域名
if ($host == 'www.example.com') {
echo '这是 www.example.com 域名';
} elseif ($host == 'example.com') {
echo '这是 example.com 域名';
} else {
echo '其他域名';
}
?>
使用 $_SERVER[‘SERVER_NAME’]
$_SERVER['SERVER_NAME'] 和 $_SERVER['HTTP_HOST'] 类似,也是用来获取主机名的。$_SERVER['SERVER_NAME'] 只包含域名,不包含端口号。
示例:

<?php
// 获取访问域名
$host = $_SERVER['SERVER_NAME'];
// 判断域名
if ($host == 'www.example.com') {
echo '这是 www.example.com 域名';
} elseif ($host == 'example.com') {
echo '这是 example.com 域名';
} else {
echo '其他域名';
}
?>
使用 DNS 解析
我们可能需要根据域名解析出 IP 地址,或者根据 IP 地址反解析出域名,PHP 提供了 gethostbyname() 和 gethostbyaddr() 函数来实现这一功能。
示例:
<?php
// 根据域名获取 IP 地址
$ip = gethostbyname('www.example.com');
echo 'www.example.com 的 IP 地址是:' . $ip;
// 根据 IP 地址获取域名
$domain = gethostbyaddr('192.168.1.1');
echo 'IP 地址 192.168.1.1 对应的域名是:' . $domain;
?>
使用 parse_url() 函数
parse_url() 函数可以将 URL 解析成一个数组,我们可以通过这个数组来获取域名。
示例:

<?php
// 获取访问域名
$url = 'http://www.example.com/index.php';
$host = parse_url($url, PHP_URL_HOST);
// 判断域名
if ($host == 'www.example.com') {
echo '这是 www.example.com 域名';
} elseif ($host == 'example.com') {
echo '这是 example.com 域名';
} else {
echo '其他域名';
}
?>
使用 filter_var() 函数
filter_var() 函数可以用来过滤和验证输入数据,我们可以使用这个函数来验证域名。
示例:
<?php
// 获取访问域名
$host = $_SERVER['HTTP_HOST'];
// 验证域名
if (filter_var($host, FILTER_VALIDATE_DOMAIN)) {
echo '这是一个有效的域名:' . $host;
} else {
echo '这不是一个有效的域名';
}
?>
通过以上几种方法,我们可以方便地在 PHP 中判断访问域名,在实际开发中,根据具体需求选择合适的方法即可,希望本文对您有所帮助。


















