php中获取关键词及所属来源搜索引擎名称的代码

 更新时间:2011年02月15日 01:19:59   作者:  
有时候我们需要知道用户通过哪个搜索引擎,通过拿个关键词访问我们页面,当然js也可以实现,但这里介绍下php的实现代码。
复制代码 代码如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>greengnn codes</title>
</head>
<body>
<form action="index.php" method="get">
<input name="url" size="80"><button type="submit">GO</button>
</form>

<?php
//获取关键词及所属来源搜索引擎名称

$search_url = isset($_GET['url'])?$_GET['url']:''; //代表传入的地址
/*$search_url = urldecode($search_url);
print_r($search_url);
*/

$config = array(
"s1"=>array(
"domain" => "google.com",
"kw" => "q",
"charset" => "utf-8"
),
"s3"=>array(
"domain" => "google.cn",
"kw" => "q",
"charset" => "utf-8"
),
"s4"=>array(
"domain" => "baidu.com",
"kw" => "wd",
"charset" => "gbk"
),
"s5"=>array(
"domain" => "soso.com",
"kw" => "q",
"charset" => "utf-8"
),
"s6"=>array(
"domain" => "yahoo.com",
"kw" => "q",
"charset" => "utf-8"
),
"s7"=>array(
"domain" => "bing.com",
"kw" => "q",
"charset" => "utf-8"
),
"s8"=>array(
"domain" => "sogou.com",
"kw" => "query",
"charset" => "gbk"
),
"s9"=>array(
"domain" => "youdao.com",
"kw" => "q",
"charset" => "utf-8"
),
);

//函数作用:从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;
}

$arr_key = array();
foreach($config as $item){
$sh = preg_match("/\b{$item['domain']}\b/",$search_url);
if($sh){
$query = $item['kw']."=";

$s_s_keyword = get_keyword($search_url,$query);
$F_Skey=urldecode($s_s_keyword);
if($item['charset']=="utf-8"){
$F_Skey=iconv( "UTF-8","gb2312//IGNORE",$F_Skey); //最终提取的关键词
}
$keys = explode(" ",$F_Skey);
$arr_key[$item['domain']] = $keys;
}
}
echo "<pre>";
print_r($arr_key);
?>

相关文章

  • php计算两个坐标(经度,纬度)之间距离的方法

    php计算两个坐标(经度,纬度)之间距离的方法

    这篇文章主要介绍了php计算两个坐标(经度,纬度)之间距离的方法,涉及php相关数学函数的使用技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • php页面跳转代码 输入网址跳转到你定义的页面

    php页面跳转代码 输入网址跳转到你定义的页面

    我先判断一下你是否开启了https,如果是就正常的https页面,如果没有开始则跳转到项目的目录下面,感兴趣的朋友可以参考下哈,希望对你有所帮助
    2013-03-03
  • 浅谈laravel中间件的创建思路

    浅谈laravel中间件的创建思路

    网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用array_reduce函数的?本文从自己的角度出发,模拟了如果我是作者,我是怎么实现这个中间件功能,又是怎么找到并使用对应的函数。本文将介绍Laravel中间件得创建思路。
    2021-05-05
  • PHP类的反射用法实例

    PHP类的反射用法实例

    这篇文章主要介绍了PHP类的反射用法,实例讲述了反射类的常用操作,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-11-11
  • PHP 字符串操作入门教程

    PHP 字符串操作入门教程

    PHP 字符串操作入门教程...
    2006-12-12
  • PHP中使用break跳出多重循环代码实例

    PHP中使用break跳出多重循环代码实例

    这篇文章主要介绍了PHP中使用break跳出多重循环代码实例,本文直接给出代码,代码简洁易一懂,一看就明白了,需要的朋友可以参考下
    2015-01-01
  • php实现在新浪云中使用imagick生成缩略图并上传的方法

    php实现在新浪云中使用imagick生成缩略图并上传的方法

    这篇文章主要介绍了php实现在新浪云中使用imagick生成缩略图并上传的方法,涉及新浪云SaeStorage类的相关操作技巧,需要的朋友可以参考下
    2016-09-09
  • PHP create_function()函数应用实例详解

    PHP create_function()函数应用实例详解

    create_function()函数在代码审计中,主要用来查找项目中的代码注入和回调后门的情况,熟悉了执行流程,我们可以熟练的实现对代码注入的payload构造,从而进行漏洞挖掘和找出存在的缺陷
    2022-10-10
  • php调用c接口无错版介绍

    php调用c接口无错版介绍

    本篇文章主要是对php调用c接口无错版进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2014-03-03
  • php中isset与empty函数的困惑与用法分析

    php中isset与empty函数的困惑与用法分析

    这篇文章主要介绍了php中isset与empty函数的困惑与用法,结合实例形式分析了php中isset与empty函数的功能、用法、区别及相关使用注意事项,需要的朋友可以参考下
    2019-07-07

最新评论