📅  最后修改于: 2023-12-03 15:09:19.791000             🧑  作者: Mango
在进行网站开发时,有时候需要检查浏览器访问的 URL 是否包含某个特定的域名。例如,某个网站需要限制只能通过该网站的域名来访问,而不能通过其他域名访问。这时就需要使用 PHP 语言来进行检查。
$_SERVER
变量获取当前 URL在 PHP 中,可以使用 $_SERVER
变量来获取当前正在访问的网页的信息。其中,$_SERVER['HTTP_HOST']
变量可以用来获取当前 URL 中的域名部分。
为了获取完整的 URL,可以使用以下代码:
$fullUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
这里使用了三个 $_SERVER
变量:
$_SERVER['HTTPS']
:表示当前访问的 URL 是否使用了 HTTPS 协议,是则为 on
,否则为 off
。$_SERVER['HTTP_HOST']
:表示当前访问的 URL 中的域名部分。$_SERVER['REQUEST_URI']
:表示当前访问的 URL 中的路径部分。然后使用条件运算符 ? :
来判断是否使用了 HTTPS 协议,构造完整的 URL。最终得到的 $fullUrl
变量即为当前访问的完整 URL。
要检查浏览器访问的 URL 是否包含指定的域名,可以使用 strpos()
函数。该函数可以从一个字符串中查找指定的子串,并返回该子串在字符串中第一次出现的位置。如果没找到,返回 false
。
例如,要检查当前 URL 是否包含 example.com
域名,可以使用以下代码:
if(strpos($fullUrl, 'example.com') !== false) {
echo 'URL contains example.com';
} else {
echo 'URL does not contain example.com';
}
该代码通过 strpos()
函数来查找 example.com
子串在 $fullUrl
变量中的位置。如果返回的位置不为 false
,则表明该子串在字符串中出现过,即当前 URL 中包含 example.com
域名。
在 PHP 中,可以使用 $_SERVER
变量来获取当前访问的 URL 信息。通过 strpos()
函数来查找 URL 中是否包含指定的域名。这样就可以在网站开发中实现对 URL 域名的限制和检查。