页面要实现一个功能:根据访问者来源页,获取搜索关键字,这里只考虑百度的搜索。
如果访问者是从百度点击到我网站这个页面的,先获取来源页,然后判断是否百度搜索来的,再判断出关键字。
已知来源页:
$ref = getenv("HTTP_REFERER");
比如:
http://www.baidu.com/s?wd=%B9%D8%BC%FC%D7%D6&ie=utf-8
http://www.baidu.com/s?wd=%B9%D8%BC%FC%D7%D6百度关键字在url中的参数是wd,关键字就是ref变量中"wd="与"&"之间的字符串,如果没有"&"就光"wd="之后的请问如何实现?

解决方案 »

  1.   


    if (!empty($_SERVER['HTTP_REFERER']) && strlen($_SERVER['HTTP_REFERER']) > 9)
        {
            $pos = strpos($_SERVER['HTTP_REFERER'], '/', 9);
            if ($pos !== false)
            {
                $domain = substr($_SERVER['HTTP_REFERER'], 0, $pos);
                $path   = substr($_SERVER['HTTP_REFERER'], $pos);
                if (!empty($domain) && !empty($path))
                {
                    if (strpos($domain, 'baidu.') !== false && preg_match('/wd=([^&]*)/i', $path, $regs))
    {
                    $searchengine = 'BAIDU';
                    $keywords = urldecode($regs[1]);                }
                }
           }
        }
      

  2.   


    if(!empty($_SERVER['HTTP_REFERER'])){
      $post = $_SERVER['HTTP_REFERER'];
      if(preg_match('/http:\/\/www\.baidu\.com\/s\?wd=/i',$post)){
        preg_match('/wd=([^&]*)/i',$post,$match);
        echo (urldecode($match[1]));
      }
    }