//获取来自搜索引擎入站关键词 - //by bbs.it-home.org
- 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="bbs.it-home.org";
- 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"];
- }
- ?>
-
说明:在处理时,记得处理好编码的问题,因为不同的搜索引擎,返回的结果,有的可能是GBK,有的则可能是UTF-8格式的内容。
函数2,这个也不错,大家可以试试。
代码如下:
- //获取搜索引擎的入口关键字
- $_SERVER['HTTP_REFERER']='http://www.baidu.com/s?wd=http://bbs.it-home.org';
- echo save_www_iiwnet_com_keyword('http://www.baidu.com/s?wd=http://bbs.it-home.org','http://www.baidu.com/s?wd=http://bbs.it-home.org');
- function save_www_iiwnet_com_keyword($domain,$path){
- if(strpos($domain, 'google.com.tw')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'GOOGLE TAIWAN';
- $keywords = urldecode($regs[1]); // google taiwan
- }
- if(strpos($domain,'google.cn')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'GOOGLE CHINA';
- $keywords = urldecode($regs[1]); // google china
- }
- if(strpos($domain,'google.com')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'GOOGLE';
- $keywords = urldecode($regs[1]); // google
- }elseif(strpos($domain,'baidu.')!==false && preg_match('/wd=([^&]*)/i',$path,$regs)){
- $searchengine = 'BAIDU';
- $keywords = urldecode($regs[1]); // baidu
- }elseif(strpos($domain,'baidu.')!==false && preg_match('/word=([^&]*)/i',$path,$regs)){
- $searchengine = 'BAIDU';
- $keywords = urldecode($regs[1]); // baidu
- }elseif(strpos($domain,'114.vnet.cn')!== false && preg_match('/kw=([^&]*)/i',$path,$regs)){
- $searchengine = 'CT114';
- $keywords = urldecode($regs[1]); // ct114
- }elseif(strpos($domain,'iask.com')!==false && preg_match('/k=([^&]*)/i',$path,$regs)){
- $searchengine = 'IASK';
- $keywords = urldecode($regs[1]); // iask
- }elseif(strpos($domain,'soso.com')!==false && preg_match('/w=([^&]*)/i',$path,$regs)){
- $searchengine = 'SOSO';
- $keywords = urldecode($regs[1]); // soso
- }elseif(strpos($domain, 'sogou.com')!==false && preg_match('/query=([^&]*)/i',$path,$regs)){
- $searchengine = 'SOGOU';
- $keywords = urldecode($regs[1]); // sogou
- }elseif(strpos($domain,'so.163.com')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'NETEASE';
- $keywords = urldecode($regs[1]); // netease
- }elseif(strpos($domain,'yodao.com')!== false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'YODAO';
- $keywords = urldecode($regs[1]); // yodao
- }elseif(strpos($domain,'zhongsou.com')!==false && preg_match('/word=([^&]*)/i',$path,$regs)){
- $searchengine = 'ZHONGSOU';
- $keywords = urldecode($regs[1]); // zhongsou
- }elseif(strpos($domain,'search.tom.com')!==false && preg_match('/w=([^&]*)/i',$path,$regs)){
- $searchengine = 'TOM';
- $keywords = urldecode($regs[1]); // tom
- }elseif(strpos($domain,'live.com')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'MSLIVE';
- $keywords = urldecode($regs[1]); // MSLIVE
- }elseif(strpos($domain, 'tw.search.yahoo.com')!==false && preg_match('/p=([^&]*)/i',$path,$regs)){
- $searchengine = 'YAHOO TAIWAN';
- $keywords = urldecode($regs[1]); // yahoo taiwan
- }elseif(strpos($domain,'cn.yahoo.')!==false && preg_match('/p=([^&]*)/i',$path,$regs)){
- $searchengine = 'YAHOO CHINA';
- $keywords = urldecode($regs[1]); // yahoo china
- }elseif(strpos($domain,'yahoo.')!==false && preg_match('/p=([^&]*)/i',$path,$regs)){
- $searchengine = 'YAHOO';
- $keywords = urldecode($regs[1]); // yahoo
- }elseif(strpos($domain,'msn.com.tw')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'MSN TAIWAN';
- $keywords = urldecode($regs[1]); // msn taiwan
- }elseif(strpos($domain,'msn.com.cn')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'MSN CHINA';
- $keywords = urldecode($regs[1]); // msn china
- }elseif(strpos($domain,'msn.com')!==false && preg_match('/q=([^&]*)/i',$path,$regs)){
- $searchengine = 'MSN';
- $keywords = urldecode($regs[1]); // msn
- }
- return $keywords;
- }
- ?>
|