来自谷歌的PHP访客

时间:2013-03-26 08:26:31

标签: php

如果有人从Google访问我的网站,我怎么能找到?

<?php
  if (isset($_COOKIE['source'])) {
      $arr = explode("=",$_COOKIE['source']);
      $_SESSION['source'] = $arr[1];
      unset($_COOKIE['source']);
  }
?>

这就是我获取源代码的方式,了解访问者在我的网站之前的位置,如果他在Google上搜索我的网页,我想设置$_SESSION['source']="google"

3 个答案:

答案 0 :(得分:1)

使用:$_SERVER['HTTP_REFERER']

if(strpos($_SERVER['HTTP_REFERER'], 'google'))
echo 'comes from google';

答案 1 :(得分:0)

尝试检查$ _SERVER ['HTTP_REFERER']。此全局变量应包含referer url。

答案 2 :(得分:0)

我就是这样做的。它解析给定的URL(如果有),然后删除所有不需要的信息,如Top-Level-Domain或第三级或更低级别的域,因此我们只剩下第二级域名(谷歌)。< / p>

function isRequestFromGoogle() {
    if (!empty($_SERVER['HTTP_REFERER'])) {
        $host = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
        if (!$host) {
            return false; // no host found
        }

        // remove the TLD, like .com, .de etc.
        $hostWithoutTld = mb_substr($_SERVER['HTTP_REFERER'], 0, mb_strrpos($_SERVER['HTTP_REFERER'], '.'));
        // get only the second level domain name
        // e.g. from news.google.de we already removed .de and now we remove news.
        $domainName = mb_substr($hostWithoutTld, mb_strrpos($hostWithoutTld, '.') + 1);

        if (mb_strtolower($domainName) == 'google') {
            return true;
        } else {
            return false;
        }
    }
}