Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查流量是否来自特定URL?_Php - Fatal编程技术网

Php 检查流量是否来自特定URL?

Php 检查流量是否来自特定URL?,php,Php,我想统计一下从参考网站访问我的网站的次数。我知道有很多程序,比如Google analytics,但会告诉你,我的塔夫绸来自www.facebook.com。我想检查流量是否来自我指定的特定URL,如www.facebook.com/myfanpage 在我考虑php之前,我尝试了几种javascript方法,但它们似乎没有按照我想要的方式运行。在搜索php时,我只找到了这个函数。有什么想法吗 $_SERVER['HTTP_REFERER'] $\u服务器['HTTP\u REFERER']应

我想统计一下从参考网站访问我的网站的次数。我知道有很多程序,比如Google analytics,但会告诉你,我的塔夫绸来自www.facebook.com。我想检查流量是否来自我指定的特定URL,如www.facebook.com/myfanpage

在我考虑php之前,我尝试了几种javascript方法,但它们似乎没有按照我想要的方式运行。在搜索php时,我只找到了这个函数。有什么想法吗

$_SERVER['HTTP_REFERER']

$\u服务器['HTTP\u REFERER']
应包含用户从中访问页面的URL。这不是一个函数。它只是一个值。因此,您可以将其用于此目的


但是,请注意,该值很容易被欺骗。(它取自HTTP请求头,用户可以发送他们想要的任何东西。)如果您只是为了自己的兴趣或其他原因收集统计数据,它应该是可以接受的可靠的。但是,如果您试图使用它来保护页面安全(例如,如果访问者来自某个URL,则仅显示某些内容),请忘记它。

只有当HTTP请求具有
referer
时,您才能进行检查,而这在PHP中实际上可以使用
HTTP\u referer
访问。因此,其完全负责从推荐网站


上面的帖子也会对你有所帮助。

$\u服务器['HTTP\u REFERER']
将完全满足你的需要

if (strstr($_SERVER['HTTP_REFERER'], 'facebook.com') !== false) {
    // Facebook brought me to this page.
}

elseif (strstr($_SERVER['HTTP_REFERER'], 'google.com') !== false ) {
    // Google brought me to this page.
}

对不起,我知道这已经晚了6个月了,但如果url是,那么这也是真的吗?更好的方法是根据/然后提取第四部分,即

$refererUrl = $_SERVER['HTTP_REFERER'];
$Exploded_URL = explode("/",$refererUrl);
$urlToCheck = $Exploded_URL[3].'.'.$Exploded_URL[4];
if($urlToCheck == 'facebook.com'){
/* From Facebook */
} elseif ($urlToCheck == 'google.com'){
/* From Google */
}

这不适用于许多浏览器。许多浏览器在跨域移动时选择不发送HTTP_REFERER。如果REFERER url是
example.com/facebook.com