页面要实现一个功能:根据访问者来源页,获取搜索关键字,这里只考虑百度的搜索。
如果访问者是从百度点击到我网站这个页面的,先获取来源页,然后判断是否百度搜索来的,再判断出关键字。
已知来源页:
$ref = getenv("HTTP_REFERER");
比如:
http://www.baidu.com/s?wd=%B9%D8%BC%FC%D7%D6&ie=utf-8
http://www.baidu.com/s?wd=%B9%D8%BC%FC%D7%D6百度关键字在url中的参数是wd,关键字就是ref变量中"wd="与"&"之间的字符串,如果没有"&"就光"wd="之后的请问如何实现?
如果访问者是从百度点击到我网站这个页面的,先获取来源页,然后判断是否百度搜索来的,再判断出关键字。
已知来源页:
$ref = getenv("HTTP_REFERER");
比如:
http://www.baidu.com/s?wd=%B9%D8%BC%FC%D7%D6&ie=utf-8
http://www.baidu.com/s?wd=%B9%D8%BC%FC%D7%D6百度关键字在url中的参数是wd,关键字就是ref变量中"wd="与"&"之间的字符串,如果没有"&"就光"wd="之后的请问如何实现?
if (!empty($_SERVER['HTTP_REFERER']) && strlen($_SERVER['HTTP_REFERER']) > 9)
{
$pos = strpos($_SERVER['HTTP_REFERER'], '/', 9);
if ($pos !== false)
{
$domain = substr($_SERVER['HTTP_REFERER'], 0, $pos);
$path = substr($_SERVER['HTTP_REFERER'], $pos);
if (!empty($domain) && !empty($path))
{
if (strpos($domain, 'baidu.') !== false && preg_match('/wd=([^&]*)/i', $path, $regs))
{
$searchengine = 'BAIDU';
$keywords = urldecode($regs[1]); }
}
}
}
if(!empty($_SERVER['HTTP_REFERER'])){
$post = $_SERVER['HTTP_REFERER'];
if(preg_match('/http:\/\/www\.baidu\.com\/s\?wd=/i',$post)){
preg_match('/wd=([^&]*)/i',$post,$match);
echo (urldecode($match[1]));
}
}