PHP获取来自搜索引擎入站的关键词
2011年09月14日
获取来自搜索引擎用户的搜索关键词,相信很多网站都有这样的需求。既可以根据不同的用户来路显示不同的信息, 还能根据用户搜索关键词提供一些相近的站内信息。
而本站现在实现的则是对来自百度、Google的用户显示广告。网站广告其实是很不友好的东西,尤其是博客。最早在博客上放Google Adsense的广告主要是觉得好玩。适当的广告图片,其实真的还是很有美感的。大四弄过一个老乡的论坛,像猫猫师兄说得那样,网站有广告,看起来才有味道,像是一个完整的网站。
通过PHP获取来自搜索引擎入站的关键词,其实很简单,主要依靠$_SERVER[HTTP_REFERER]这个变量,从他我们可以得到来路的URL地址。当然$_SERVER还可以提供其他很丰富的信息,有兴趣可以查相应手册。下面看看相关的代码:
这样对来路的分析,我们可以对来自百度、Google的用户展现不同的信息。如果要获取用户搜索关键词,我们还要对URL进行更深层次分析,通过平时观察,百度搜索的时候URL上“kw=关键词”,而Google是“q=关键词”。下面介绍一个函数:
通过上面的函数,再进行一下urkdecode,我们就能获取到URL中的搜索关键词,不过这时候还应注意网页编码(UTF8还是GBK编码),并根据需要对关键词进行编码转换,否则容易出现乱码。
而本站现在实现的则是对来自百度、Google的用户显示广告。网站广告其实是很不友好的东西,尤其是博客。最早在博客上放Google Adsense的广告主要是觉得好玩。适当的广告图片,其实真的还是很有美感的。大四弄过一个老乡的论坛,像猫猫师兄说得那样,网站有广告,看起来才有味道,像是一个完整的网站。
通过PHP获取来自搜索引擎入站的关键词,其实很简单,主要依靠$_SERVER[HTTP_REFERER]这个变量,从他我们可以得到来路的URL地址。当然$_SERVER还可以提供其他很丰富的信息,有兴趣可以查相应手册。下面看看相关的代码:
$url=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'';//获取入站url。
$search_1="google.com";
$search_2="baidu.com";
$google=preg_match("/b{$search_1}b/",$url);//搜索URL中是否含有google.com字段。
$baidu=preg_match("/b{$search_2}b/",$url);
if($google){
echo "欢迎,来自Google的朋友...";
}
这样对来路的分析,我们可以对来自百度、Google的用户展现不同的信息。如果要获取用户搜索关键词,我们还要对URL进行更深层次分析,通过平时观察,百度搜索的时候URL上“kw=关键词”,而Google是“q=关键词”。下面介绍一个函数:
function get_keyword($url,$kw_start)//$kw_start就是上面所说的q=、kw=这样的字段
{
$start=stripos($url,$kw_start);
$url=substr($url,$start+strlen($kw_start));
$start=stripos($url,'&');
if ($start>0)
{
$start=stripos($url,'&');
$keyword=substr($url,0,$start);
}
else
{
$keyword=substr($url,0);
}
return $keyword;
}
通过上面的函数,再进行一下urkdecode,我们就能获取到URL中的搜索关键词,不过这时候还应注意网页编码(UTF8还是GBK编码),并根据需要对关键词进行编码转换,否则容易出现乱码。

