本文实例讲述了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自定义函数获取搜索引擎来源关键字的方法相关推荐

  1. 在python中使用关键字define定义函数_python自定义函数def的应用详解

    这里是三岁,来和大家唠唠自定义函数,这一个神奇的东西,带大家白话玩转自定义函数 自定义函数,编程里面的精髓! def 自定义函数的必要函数:def 使用方法:def 函数名(参数1,参数2,参数-): ...

  2. Hive函数(内置函数(字符串函数,数学函数,日期函数,集合函数,条件函数,聚合函数,表生成函数)和自定义函数(自定义函数创建流程,临时函数,永久函数)))(四)

    Hive函数(内置函数和自定义函数) 一.内置函数 1.字符串函数 (1)ascii (2)base64 (3)concat (4)concat_ws (5)format_number (6)subs ...

  3. pandas编写自定义函数、使用apply函数应用自定义函数基于Series数据生成新的dataframe

    pandas编写自定义函数.使用apply函数应用自定义函数基于Series数据生成新的dataframe 目录 pandas编写自定义函数.使用apply函

  4. 自定义_Excel中的自定义函数(自定义函数的基础内容)

    各位朋友,你们好. 最近和网友沟通交流Excel问题,好些问题都没法直接实现,因此用了很多自定义函数,也给头条里的朋友写过几个自定义函数(比如颜色计算的函数.提取不重复内容的函数.汉字转拼音的函数-- ...

  5. C语言-函数(自定义函数)

    C语言中函数的分类: 1 库函数 2 自定义函数 自定义函数 如果库函数能干所有的事情,那还要程序员做什么? 所以更重要的是自定义函数 函数的组成: ret_type    fun_name (par ...

  6. excel中DATE(year,month,day)函数——oracle自定义函数

    @oracle自定义函数写excel中DATE函数 oracle自定义函数写excel中DATE函数 EXCEL中DATE函数逻辑为DATE(year,month,day) 含义:DATE(年,月,日 ...

  7. 一文弄懂python中的函数(自定义函数,匿名函数,高阶函数与解析式)

    什么是函数,如何在 Python 程序中定义函数呢? 说白了,函数就是为了实现某一功能的代码段,只要写好以后,就可以重复利用. python中的自定义函数 Python 的函数具有非常灵活多样的参数形 ...

  8. 内置函数、自定义函数

    编程语言的函数都可以分为两类:内置函数和自定义函数. 内置函数分为 数字相关的内置函数 # abs(x) 求绝对值print(abs(-10)) #10 """ divm ...

  9. Python之系统函数、自定义函数、模块、递归合集

    一.函数(function)引入 1.函数(计算机函数)是程序中一段相对独立的代码,这段代码能够实现某一项具有独立.完整的功能.指可以直接被另一段程序代码引用的程序代码. 2.函数分为系统函数和自定义 ...

最新文章

  1. AlarmManager与PendingIntent的联合使用(一)
  2. java List集合总结
  3. 【JavaWeb】已解决:Resource interpreted as Stylesheet but transferred with MIME type text/html
  4. PHP源码安装及配置——以fastCGI的方式与httpd整合
  5. react判断点击位置是否为组件内,实现点击外部触发组件内事件
  6. Visual Studio中相对路径中的宏定义,你不了解的宏定义都在这里!
  7. Linux基础命令操作
  8. 计算机应用可分为哪两类,计算机应用简答题
  9. STEP文件格式总结
  10. 页面置换算法 (全)
  11. 计算机设计大赛海报素材,海报创意设计比赛方案(word版)
  12. 利用Css3样式属性Cursor来更换自定义个性化鼠标指针(光标)
  13. 服务器appcrash的问题怎么修复,APPCRASH问题如何解决
  14. 儒略日(CSP S2 第一题)
  15. Python+Eclipse配置`PyDev`完整教程
  16. 凡人修仙传之百炼冥门java_修仙缘:细说我与《凡人修仙传》的过往
  17. wincc 数据库的连接方法
  18. Net Core WebApi自定义拦截特性简单实现
  19. socket聊天室实现-群聊,私聊,好友列表,完整版
  20. 华为NQA与默认路由

热门文章

  1. 更换网站服务器对网站优化有影响吗?
  2. 这可能是你近 2 年发论文最好机会!
  3. ✨【Code皮皮虾】一次通过99.90%,思路详解【找到需要补充粉笔的学生编号】
  4. 51单片机数码管滚动显示学号_静、动态数码管动态显示
  5. 【注释张豪华版 Path酷炫动画】极速get花式Path (支付宝支付成功动画)
  6. [新版新概念英语1-4册全部视频和课本]
  7. 什么是通信原理?原来这么简单
  8. C#扩展(2):Random的扩展
  9. 突然不能从主机向虚拟机上拷贝文件了
  10. 2022年流动式起重机司机考题及模拟考试