• PHP获取搜索引擎关键字来源(百度、谷歌、雅虎、搜狗、搜搜、必应、有道)


    <?php
    //获取来自搜索引擎入站时的关键词
    function get_keyword($url,$kw_start)
     {
      $start=stripos($url,$kw_start);
      $url=substr($url,$start+strlen($kw_start));
      $start=stripos($url,'&');
       if ($start>0)
       {
        $start=stripos($url,'&');
        $s_s_keyword=substr($url,0,$start);
       }
       else
       {
       $s_s_keyword=substr($url,0);
       }
      return $s_s_keyword;
     }
     
     $url=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';//获取入站url。
     $search_1="google.com"; //q= utf8
     $search_2="baidu.com"; //wd= gbk
     $search_3="yahoo.cn"; //q= utf8
     $search_4="sogou.com"; //query= gbk
     $search_5="soso.com"; //w= gbk
     $search_6="bing.com"; //q= utf8
     $search_7="youdao.com"; //q= utf8
     
     $google=preg_match("/{$search_1}/",$url);//记录匹配情况,用于入站判断。
     $baidu=preg_match("/{$search_2}/",$url);
     $yahoo=preg_match("/{$search_3}/",$url);
     $sogou=preg_match("/{$search_4}/",$url);
     $soso=preg_match("/{$search_5}/",$url);
     $bing=preg_match("/{$search_6}/",$url);
     $youdao=preg_match("/{$search_7}/",$url);
     $s_s_keyword="";
     $bul=$_SERVER['HTTP_REFERER'];
     //获取没参数域名
     preg_match('@^(?:http://)?([^/]+)@i',$bul,$matches);
     $burl=$matches[1];
     //匹配域名设置
     $curl="www.netxu.com";
     if($burl!=$curl){
       if ($google)
      {//来自google
       $s_s_keyword=get_keyword($url,'q=');//关键词前的字符为"q="。
       $s_s_keyword=urldecode($s_s_keyword);
       $urlname="谷歌:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
       //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
      }
      else if($baidu)
      {//来自百度
       $s_s_keyword=get_keyword($url,'wd=');//关键词前的字符为"wd="。
       $s_s_keyword=urldecode($s_s_keyword);
       $s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
       $urlname="百度:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      else if($yahoo)
      {//来自雅虎
       $s_s_keyword=get_keyword($url,'q=');//关键词前的字符为"q="。
       $s_s_keyword=urldecode($s_s_keyword);
       //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
       $urlname="雅虎:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      else if($sogou)
      {//来自搜狗
       $s_s_keyword=get_keyword($url,'query=');//关键词前的字符为"query="。
       $s_s_keyword=urldecode($s_s_keyword);
       $s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
       $urlname="搜狗:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      else if($soso)
      {//来自搜搜
       $s_s_keyword=get_keyword($url,'w=');//关键词前的字符为"w="。
       $s_s_keyword=urldecode($s_s_keyword);
       $s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
       $urlname="搜搜:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      else if($bing)
      {//来自必应
       $s_s_keyword=get_keyword($url,'q=');//关键词前的字符为"q="。
       $s_s_keyword=urldecode($s_s_keyword);
       //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
       $urlname="必应:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      else if($youdao)
      {//来自有道
       $s_s_keyword=get_keyword($url,'q=');//关键词前的字符为"q="。
       $s_s_keyword=urldecode($s_s_keyword);
       //$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎为gbk
       $urlname="有道:";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      else{
       $urlname=$burl;
       $s_s_keyword="";
       $_SESSION["urlname"]=$urlname;
       $_SESSION["s_s_keyword"]=$s_s_keyword;
      }
      $s_urlname=$urlname;
      $s_urlkey=$s_s_keyword;
     }
     else{
      $s_urlname=$_SESSION["urlname"];
      $s_urlkey=$_SESSION["s_s_keyword"];
     }
    ?>
  • 相关阅读:
    Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
    初探Java设计模式5:一文了解Spring涉及到的9种设计模式
    初探Java设计模式4:一文带你掌握JDK中的设计模式
    初探Java设计模式3:行为型模式(策略,观察者等)
    初探Java设计模式2:结构型模式(代理模式,适配器模式等)
    初探Java设计模式1:创建型模式(工厂,单例等)
    [转] <context-param>与<init-param>的区别与作用
    [转]servlet配置中init-param
    [转]Spring 中的p标签
    [转]Spring Security学习总结二
  • 原文地址:https://www.cnblogs.com/wawahaha/p/3456842.html
Copyright © 2020-2023  润新知