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

时间:2012-01-29 00:52:54

标签: php dns http-status-code-404 http-referer

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

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

3 个答案:

答案 0 :(得分:46)

parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST)

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

请注意,引用者很容易欺骗,所以它几乎不可靠。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

这应该做:

 $_SERVER['SERVER_NAME']