有时候,当我们从搜索引擎进入某个网站,他会有一行小字,“欢迎来自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;
}
?>
来自 http://www.nowamagic.net/librarys/veda/detail/2158