php获取搜索框的函数,PHP自定义函数获取搜索引擎来源关键字的方法
本文实例讲述了PHP自定义函数获取搜索引擎来源关键字的方法。分享给大家供大家参考,具体如下:
获取搜索引擎来源关键字的函数:
function getKeywords() {
// 搜索引擎关键字映射
static $host_keyword_map = array(
'www.baidu.com' => 'wd',
'v.baidu.com' => 'word',
'image.baidu.com' => 'word',
'news.baidu.com' => 'word',
'www.so.com' => 'q',
'video.so.com' => 'q',
'image.so.com' => 'q',
'news.so.com' => 'q',
'www.sogou.com' => 'query',
'pic.sogou.com' => 'query',
'v.sogou.com' => 'query',
);
// 检查来源是否搜索引擎
if (!isset($_SERVER['HTTP_REFERER'])) {
return '';
}
$urls = parse_url($_SERVER['HTTP_REFERER']);
if (!array_key_exists($urls['host'], $host_keyword_map)) {
return '';
}
$key = $host_keyword_map[$urls['host']];
// 检查关键字参数是否存在
if (!isset($urls['query'])) {
return '';
}
$params = array();
parse_str($urls['query'], $params);
if (!isset($params[$key])) {
return '';
}
$keywords = $params[$key];
// 检查编码
$encoding = mb_detect_encoding($keywords, 'utf-8,gbk');
if ($encoding != 'utf-8') {
$keywords = iconv($encoding, 'utf-8', $keywords);
}
return $keywords;
}
函数测试:
header("Content-Type: text/html; charset=utf-8");
$referers = array(
'http://www.baidu.com/s?cl=3&wd;=%B9%E9%C0%B4&fr;=vid1000',
'http://www.baidu.com/s?tn=92506501_hao_pg&rtt;=1&bsst;=1&wd;=%B9%E9%C0%B4',
'http://www.baidu.com/link?url=ctBhF7AAau6LwE61pJOEH-ZhgUM7D3YHYMrm6xIXJlDQtMXCiea7gg49s90Q-Qh8wHD8Ano-dPNhUawBBNEEwEbtu8toMF5k1V7Xy850EtlpZyMcS0e_y-SCJp86iM6e&wd;=%E5%BD%92%E6%9D%A5&tn;=baidu&ie;=utf-8&inputT;=2980',
'http://www.baidu.com/link?url=TIn9NR6fwiy6IwwkCcVF8HhHoxVUpHQsyj1YdlQPy2roXKTnSQS_3UxwvyjZ2JPkpxF8-diSoRCSpODUM_jq2K&wd;=%E5%BD%92%E6%9D%A5&tn;=baidu&ie;=utf-8&input;',
'http://news.baidu.com/ns?cl=2&rn;=20&tn;=news&word;=%E5%BD%92%E6%9D%A5&ie;=utf-8',
'http://image.baidu.com/i?ct=503316480&z;=&tn;=baiduimagedetail&ipn;=d&word;=%E5%BD%92%E6%9D%A5&step;_word=&ie;=utf-8∈=17668&cl;=2&lm;=-1&st;=&pn;=6&rn;=1&di;=70447907090&ln;=1994&fr;=news&&fmq;=1402285886106_R⁣=&s;=&se;=&sme;=0&tab;=&width;=&height;=&face;=&is;=&istype;=&ist;=&jit;=&objurl;=http%3A%2F%2Fpic31.nipic.com%2F20130713%2F1287761_225159187345_2.jpg',
'http://v.baidu.com/v?ct=301989888&s;=25&ie;=utf-8&word;=%E5%BD%92%E6%9D%A5',
'http://www.so.com/s?ie=utf-8&shb;=1&src;=360sou_newhome&q;=%E5%BD%92%E6%9D%A5',
'http://video.so.com/v?q=%E5%BD%92%E6%9D%A5&src;=tab_www',
'http://image.so.com/v?q=%E5%BD%92%E6%9D%A5&src;=tab_video&fromurl;=http%3A%2F%2Fndent.oeeee.com%2Fhtml%2F201309%2F16%2F258899.html',
'http://news.so.com/ns?q=%E5%BD%92%E6%9D%A5&src;=tab_video',
'http://www.sogou.com/web?query=%E5%BD%92%E6%9D%A5&_asf=www.sogou.com&_ast=1402284372&w;=01019900&p;=40040100&ie;=utf8&sut;=6558&sst0;=1402284372272&lkt;=0%2C0%2C0',
'http://www.sogou.com/web?query=%E5%BD%92%E6%9D%A5&_asf=www.sogou.com&_ast=1402284372&w;=01019900&p;=40040100&ie;=utf8&sut;=6558&sst0;=1402284372272&lkt;=0%2C0%2C0',
'http://pic.sogou.com/d?query=%B9%E9%C0%B4&mood;=0&picformat;=0&mode;=1&di;=0&w;=03021800&dr;=1&did;=1',
'http://v.sogou.com/v?query=%B9%E9%C0%B4&p;=&w;=',
'http://www.baidu.com/s?aaa=bbb',
'http://www.baidu.com/',
'http://www.jb51.net/',
);
foreach ($referers as $r) {
$_SERVER['HTTP_REFERER'] = $r;
echo getKeywords(), "\n";
}
搜索引擎占有比率:
希望本文所述对大家PHP程序设计有所帮助。
php获取搜索框的函数,PHP自定义函数获取搜索引擎来源关键字的方法相关推荐
- 在python中使用关键字define定义函数_python自定义函数def的应用详解
这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...
- Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)
Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...
- pandas编写自定义函数、使用apply函数应用自定义函数基于Series数据生成新的dataframe
pandas编写自定义函数.使用apply函数应用自定义函数基于Series数据生成新的dataframe 目录 pandas编写自定义函数.使用apply函
- 自定义_Excel中的自定义函数(自定义函数的基础内容)
各位朋友,你们好. 最近和网友沟通交流Excel问题,好些问题都没法直接实现,因此用了很多自定义函数,也给头条里的朋友写过几个自定义函数(比如颜色计算的函数.提取不重复内容的函数.汉字转拼音的函数-- ...
- C语言-函数(自定义函数)
C语言中函数的分类: 1 库函数 2 自定义函数 自定义函数 如果库函数能干所有的事情,那还要程序员做什么? 所以更重要的是自定义函数 函数的组成: ret_type fun_name (par ...
- excel中DATE(year,month,day)函数——oracle自定义函数
@oracle自定义函数写excel中DATE函数 oracle自定义函数写excel中DATE函数 EXCEL中DATE函数逻辑为DATE(year,month,day) 含义:DATE(年,月,日 ...
- 一文弄懂python中的函数(自定义函数,匿名函数,高阶函数与解析式)
什么是函数,如何在 Python 程序中定义函数呢? 说白了,函数就是为了实现某一功能的代码段,只要写好以后,就可以重复利用. python中的自定义函数 Python 的函数具有非常灵活多样的参数形 ...
- 内置函数、自定义函数
编程语言的函数都可以分为两类:内置函数和自定义函数. 内置函数分为 数字相关的内置函数 # abs(x) 求绝对值print(abs(-10)) #10 """ divm ...
- Python之系统函数、自定义函数、模块、递归合集
一.函数(function)引入 1.函数(计算机函数)是程序中一段相对独立的代码,这段代码能够实现某一项具有独立.完整的功能.指可以直接被另一段程序代码引用的程序代码. 2.函数分为系统函数和自定义 ...
最新文章
- AlarmManager与PendingIntent的联合使用(一)
- java List集合总结
- 【JavaWeb】已解决:Resource interpreted as Stylesheet but transferred with MIME type text/html
- PHP源码安装及配置——以fastCGI的方式与httpd整合
- react判断点击位置是否为组件内,实现点击外部触发组件内事件
- Visual Studio中相对路径中的宏定义,你不了解的宏定义都在这里!
- Linux基础命令操作
- 计算机应用可分为哪两类,计算机应用简答题
- STEP文件格式总结
- 页面置换算法 (全)
- 计算机设计大赛海报素材,海报创意设计比赛方案(word版)
- 利用Css3样式属性Cursor来更换自定义个性化鼠标指针(光标)
- 服务器appcrash的问题怎么修复,APPCRASH问题如何解决
- 儒略日(CSP S2 第一题)
- Python+Eclipse配置`PyDev`完整教程
- 凡人修仙传之百炼冥门java_修仙缘:细说我与《凡人修仙传》的过往
- wincc 数据库的连接方法
- Net Core WebApi自定义拦截特性简单实现
- socket聊天室实现-群聊,私聊,好友列表,完整版
- 华为NQA与默认路由