<meta charset="UTF-8">
<?php
function search_word_from() {
$referer = isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';
if(strstr( $referer, 'baidu.com')){ //百度
preg_match( "|baidu.+wo?r?d=([^\\&]*)|is", $referer, $tmp );
$keyword = urldecode( $tmp[1] );
$from = 'baidu';
}elseif(strstr( $referer, 'google.com') or strstr( $referer, 'google.cn')){ //谷歌
preg_match( "|google.+q=([^\\&]*)|is", $referer, $tmp );
$keyword = urldecode( $tmp[1] );
$from = 'google';
}elseif(strstr( $referer, 'so.com')){ //360搜索
preg_match( "|so.+q=([^\\&]*)|is", $referer, $tmp );
$keyword = urldecode( $tmp[1] );
$from = '360';
}elseif(strstr( $referer, 'sogou.com')){ //搜狗
preg_match( "|sogou.com.+query=([^\\&]*)|is", $referer, $tmp );
$keyword = urldecode( $tmp[1] );
$from = 'sogou';
}elseif(strstr( $referer, 'soso.com')){ //搜搜
preg_match( "|soso.com.+w=([^\\&]*)|is", $referer, $tmp );
$keyword = urldecode( $tmp[1] );
$from = 'soso';
}else {
$keyword ='';
$from = '';
}
return array('keyword'=>$keyword,'from'=>$from);
}
//测试
$word = search_word_from();
if(!empty($word['keyword'])){
echo '关键字:'.$word['keyword'].' 来自:'.$word['from'];
}
?>
<script type="text/javascript">
function getDomainQuery(url) {
var d = [];
var st = url.indexOf('//', 1);
var _domain = url.substring(st + 1, url.length);
var et = _domain.indexOf('/', 1);
d.push(_domain.substring(1, et));
d.push(_domain.substring(et + 1, url.length));
return d
}
function route() {
var eg = [];
eg.push(['baidu', 'wd']);
eg.push(['google', 'q']);
eg.push(['soso', 'w']);
eg.push(['yodao', 'q']);
eg.push(['bing', 'q']);
eg.push(['yahoo', 'q']);
eg.push(['sogou', 'query']);
eg.push(['gougou', 'search']);
eg.push(['360', 'q']);
var dq = getDomainQuery(document.referrer);
var keyword=null;
var grep=null;
var str=null;
for(var el in eg){
var s = eg[el];
var DandQ=String(s).split(","); //字符分割
if (dq[0].indexOf(DandQ[0])>0){
eval("grep=/"+DandQ[1]+"\=.*\&/i;");
str = dq[1].match(grep);
keyword = str.toString().split("=")[1].split("&")[0];
keyword = decodeURIComponent(keyword);
alert(keyword);
return false;
}
}
}
route();
</script>