黄聪:获取搜索引擎来源访客的搜索关键词

在php中,使用$_SERVER["HTTP_REFERER"]就能获得访客的HTTP Referer。里面记录了来源的url地址,各个搜索引擎都有自己的url规则,比如说谷歌的搜索关键词是跟在q=的后面,百度的则是wd=或 word=。需要注意的是一些中文搜索引擎他使用的可能是gb2312或gbk编码,和wordpress的utf-8的不一样,获取关键词时就需要进行 转码。

下表总结了常见的搜索引擎的url规则和字符编码:

搜索引擎关键词变量名编码
googleq由url中的ie字段指定
baiduwd或wordgb2312或ie字段
yahoop或keywordei字段指定
sogouquerygb2312
bingqutf-8
youdaoq或keywordue字段指定
sosow

gb2312

$refer = $_SERVER["HTTP_REFERER"];
$refer_string = parse_url($refer, PHP_URL_QUERY);
parse_str($refer_string, $vars);
if (strpos($refer, "google")) {
    $search_terms = $vars['q'];
    $bIsUTF8 = ($vars["ie"] == "GB") ? false : true; 
}
else if(strpos($refer, "baidu"))
{
    $search_terms = $vars['wd']?$vars['wd']:$vars['word'];
    $bIsUTF8 = (strtolower($vars["ie"]) == "utf-8") ? true : false;
 
}
else if(strpos($refer, "yahoo"))
{
    $search_terms = $vars['p']?$vars['p']:$vars['keyword'];
    $bIsUTF8 = (strtolower($vars["ei"]) == "utf-8") ? true : false;
}
else if(strpos($refer, "sogou"))
{
    $search_terms = $vars["query"];
    $bIsUTF8 = false;
}
else if(strpos($refer, "bing"))
{
    $search_terms = $vars['q'];
    $bIsUTF8 = true;
 
}
else if(strpos($refer, "youdao"))
{
    $search_terms = $vars['q']?$vars['q']:$vars['keyword'];
    $bIsUTF8 = (strtolower($vars["ue"]) == "utf8") ? true : false;
}
else if(strpos($refer, "soso"))
{
    $search_terms = $vars["w"];
    $bIsUTF8 = false;
}
 
if(!$bIsUTF8)
$search_terms =iconv("gb2312","utf-8",$search_terms);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值