- 帖子
- 212
- 主题
- 189
- 精华
- 0
- 积分
- 1452
- 贡献
- 1134
- 激情
- 1349
- 阅读权限
- 100
- 最后登录
- 2018-6-13
|
[PHP 语言] 分享PHP如何获取网站来路/搜索引擎关键字来源(百度、谷歌、雅虎、搜狗、...
最近遇到一个项目,客户需要一个功能,一个商品销售下单需要知道用户下单是从哪个途径来的,认为客服软件(53客服)和站长统计只能满足工作时间,及晚上下班和周六日休息,客服不在线,用户下单会不知道该订单的具体来源,所以嘛,又只能通过网站功能来增加一字段,获取来源关键字,如何获取来源关键字,代码发在下面,里面包含(百度、谷歌、雅虎、搜狗、搜搜、必应、有道)几大搜索引擎的获取方法,代码中均注明,希望对你有帮助,分享一下2 w# J$ S. O4 K5 k1 E. r
( G4 a# C) J% a9 ~
代码如下:
, Y. D5 E. f4 X# q6 f$ \9 Y: C5 ` f% e( B+ c/ w' d3 n
- <?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("/\b{$search_1}\b/",$url);//记录匹配情况,用于入站判断。
- $baidu=preg_match("/\b{$search_2}\b/",$url);
- $yahoo=preg_match("/\b{$search_3}\b/",$url);
- $sogou=preg_match("/\b{$search_4}\b/",$url);
- $soso=preg_match("/\b{$search_5}\b/",$url);
- $bing=preg_match("/\b{$search_6}\b/",$url);
- $youdao=preg_match("/\b{$search_7}\b/",$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"];
- }
- ?>
复制代码
: c( `8 O3 U% m! _7 F& s9 i8 x, }0 M" M1 E3 y9 Z/ g
有一点要记住,由于各搜索引擎的页面编码不一样,有的是GBK,有的是UTF8,所以在获取时会有不同对字符编码的转换; i7 @5 q- S; j! x% {
6 L; N9 i9 S: `- t; t- s! p* F7 A; Y
参考: 网络 http://www.netxu.com/thread-31-1-1.html |
|