本文介绍下,php实现的可以记录搜索引擎来路与关键词的一段代码,有需要的朋友参考下。
代码: <?php /** * 记录搜索引擎来路及关键词 * edit by bbs.it-home.org */ //搜索引擎来路 function keywords($url){ $spier=array('baidu.'=>'百度','google.'=>'谷歌','soso.'=>'搜搜','sogou.'=>'搜狗','www.so.com'=>'360'); $q=array('百度'=>'/wd=([^&]*)/i','谷歌'=>'/q=([^&]*)/i','360'=>'/q=(.*)/i','搜狗'=>'/query=([^&]*)/i','搜搜'=>'/w=([^&]*)/i'); foreach($spier as $k=>$v){ if(strpos($url,$k)){ preg_match("{$q[$v]}",$url,$b); if($v=='搜搜'||$v=='搜狗'){ $keywords=iconv('GBK','UTF-8',urldecode($b[1])); }else{ $keywords=urldecode($b[1]); } echo "来自{$v}的关键字:".$keywords; } } } $url=$_SERVER['HTTP_REFERER']; //这个放到网站的头部来获取来访的地址的 keywords($url); //记录用户搜索引擎关键词代码 //记录用户通过常见的搜索引擎搜索关键词 $rfr = $_SERVER['HTTP_REFERER']; //if(!$rfr) $rfr='http://'.$_SERVER['HTTP_HOST']; if($rfr) { $p=parse_url($rfr); parse_str($p['query'],$pa); $p['host']=strtolower($p['host']); $arr_sd_key=array( 'baidu.com'=>'word', 'google.com'=>'q', 'sina.com.cn'=>'word', 'sohu.com'=>'word', 'msn.com'=>'q', 'bing.com'=>'q', '163.com'=>'q', 'yahoo.com'=>'p' ); $keyword=''; $sengine=$p['host']; foreach($arr_sd_key as $se=>$kwd) { if(strpos($p['host'],$se)!==false) { $keyword=$pa[$kwd]; $sengine=$se; break; } } $sql="insert into visit_log(domain,key_word,ct)"; } ?> |