有時候,當我們從搜索引擎進入某個網站,他會有一行小字,“歡迎來自Google/百度,通過檢索“XXX”關鍵字來到本站”之類的東西。那麼這個功能是怎麼實現的呢?其實不難,大概思路就是,獲得入站URL,再正則我們需要的數據就行了。
<?php $url=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';//獲取入站url。 $search_1 = "google.com"; //q= $search_2 = "baidu.com"; //wd= $google = preg_match("/\b{$search_1}\b/",$url);//記錄匹配情況,用於入站判斷。 $baidu = preg_match("/\b{$search_2}\b/",$url); $s_s_keyword=""; if ($google) { //來自google $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 } 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 } echo '$s_s_keyword'; /* 獲取來自搜索引擎入站時的關鍵詞。 */ // 函數作用:從url中提取關鍵詞。參數說明:url及關鍵詞前的字符。 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; } ?>