PHP獲取搜索關(guān)鍵字問題
網(wǎng)上找了一段代碼想實(shí)現(xiàn)獲取搜索關(guān)健字,測試了一個關(guān)健字取不了,是不是這代碼無效了,還是那里有BUG?
//取搜索來源關(guān)健字
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.hk"; //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
$search_8="so.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);
$so=preg_match("/b{$search_8}b/",$url);
$s_s_keyword="";
// $bul=$_SERVER['HTTP_REFERER'];
$bul=$_REQUEST["comelink"];
//獲取沒參數(shù)域名
preg_match();
$burl=$matches[1];
//匹配域名設(shè)置
$curl="";
if($burl!=$curl){
if ($google)
{//來自google
$s_s_keyword=get_keyword($url,'q=');//關(guān)鍵詞前的字符為"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=');//關(guān)鍵詞前的字符為"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=');//關(guān)鍵詞前的字符為"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=');//關(guān)鍵詞前的字符為"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=');//關(guān)鍵詞前的字符為"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)
{//來自必應(yīng)
$s_s_keyword=get_keyword($url,'q=');//關(guān)鍵詞前的字符為"q="。
$s_s_keyword=urldecode($s_s_keyword);
//$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎為gbk
$urlname="必應(yīng):";
$_SESSION["urlname"]=$urlname;
$_SESSION["s_s_keyword"]=$s_s_keyword;
}
else if($so)
{//來自360
$s_s_keyword=get_keyword($url,'q=');//關(guān)鍵詞前的字符為"q="。
$s_s_keyword=urldecode($s_s_keyword);
//$s_s_keyword=iconv("GBK","UTF-8",$s_s_keyword);//引擎為gbk
$urlname="360:";
$_SESSION["urlname"]=$urlname;
$_SESSION["s_s_keyword"]=$s_s_keyword;
}
else if($youdao)
{//來自有道
$s_s_keyword=get_keyword($url,'q=');//關(guān)鍵詞前的字符為"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;
$urlname="直接訪問";
$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"];
}
------解決方案--------------------
有什么錯誤提示嗎?
------解決方案--------------------
你那么代碼是N多年前的。
$_SERVER['HTTP_REFERER'] 不能獲取 https:// 的網(wǎng)站。
現(xiàn)在為了安全考慮,幾乎所有的搜索引擎都使用 https:// 而不是 http:// 。
更多信息請查看IT技術(shù)專欄