如何仅从 $_SERVER['HTTP_REFERER'] 中选择根域?

我想要一个404页面,可以检测用户是否通过我的网站,通过我的缩短的URL或通过其他网站访问该页面,并且我正在使用PHP进行访问。我正在慢慢掌握PHP,这可能是一个简单的问题,但说实话,我很累,我的系统中没有咖啡因,我想尽快在我的投资组合中捆绑任何松散的末端。

我发现PHP变量给了我整个URL,这是一个开始。有没有办法通过另一个变量或函数只给我根域,记住一些引用者可能使用 http:// 和一些 https://(所以简单地从第七个字符开始并不总是有效)?这样,我可以基于两个(或多个)预定义地址匹配URL,并生成与该域相关的内容。$_SERVER['HTTP_REFERER'];


答案 1
parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST)

请参见 http://php.net/manual/en/function.parse-url.php

请注意,引用者非常容易欺骗,因此它几乎不可靠。


答案 2

http://php.net/manual/en/function.parse-url.php 可能是您最好的选择,尽管您也可以使用正则表达式轻松实现所需的内容。


推荐