首頁 >php教程 >php手册 >PHP如何获得入站的搜索引擎与关键字

PHP如何获得入站的搜索引擎与关键字

WBOY
WBOY原創
2016-06-13 09:38:081199瀏覽

有时候,当我们从搜索引擎进入某个网站,他会有一行小字,“欢迎来自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;
}

?>
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn