php获得客户端浏览器名称及版本的方法(基于ECShop函数)


Posted in PHP onDecember 23, 2015

本文实例讲述了php获得客户端浏览器名称及版本的方法。分享给大家供大家参考,具体如下:

看到ecshop中有这么一个函数get_user_browser(),获取浏览器的名称和版本。虽然获取的信息只是简单的一些信息,但是还是很实用。其原理主要是通过$_SERVER['HTTP_USER_AGENT']获得浏览器信息,再用正则进行比对得出浏览器的信息。

以下是各浏览器运行的效果:

php获得客户端浏览器名称及版本的方法(基于ECShop函数)

php获得客户端浏览器名称及版本的方法(基于ECShop函数)

php获得客户端浏览器名称及版本的方法(基于ECShop函数)

源码如下:

<?php
function get_user_browser()
{
  if (empty($_SERVER['HTTP_USER_AGENT']))
  {
    return '';
  }
  $agent  = $_SERVER['HTTP_USER_AGENT'];
  $browser  = '';
  $browser_ver = '';
  if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs))
  {
    $browser  = 'Internet Explorer';
    $browser_ver = $regs[1];
  }
  elseif (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs))
  {
    $browser  = 'FireFox';
    $browser_ver = $regs[1];
  }
  elseif (preg_match('/Maxthon/i', $agent, $regs))
  {
    $browser  = '(Internet Explorer ' .$browser_ver. ') Maxthon';
    $browser_ver = '';
  }
  elseif (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs))
  {
    $browser  = 'Opera';
    $browser_ver = $regs[1];
  }
  elseif (preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs))
  {
    $browser  = 'OmniWeb';
    $browser_ver = $regs[2];
  }
  elseif (preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs))
  {
    $browser  = 'Netscape';
    $browser_ver = $regs[2];
  }
  elseif (preg_match('/safari\/([^\s]+)/i', $agent, $regs))
  {
    $browser  = 'Safari';
    $browser_ver = $regs[1];
  }
  elseif (preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs))
  {
    $browser  = '(Internet Explorer ' .$browser_ver. ') NetCaptor';
    $browser_ver = $regs[1];
  }
  elseif (preg_match('/Lynx\/([^\s]+)/i', $agent, $regs))
  {
    $browser  = 'Lynx';
    $browser_ver = $regs[1];
  }
  if (!empty($browser))
  {
    return addslashes($browser . ' ' . $browser_ver);
  }
  else
  {
    return 'Unknow browser';
  }
}
echo get_user_browser();
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
浅析php中抽象类和接口的概念以及区别
Jun 27 PHP
php_screw安装使用教程(另一个PHP代码加密实现)
May 29 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
常用PHP框架功能对照表
Oct 23 PHP
php使用NumberFormatter格式化货币的方法
Mar 21 PHP
PHP+ajax分页实例简析
Dec 07 PHP
基于PHP技术开发客服工单系统
Jan 06 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
php封装的page分页类完整实例
Oct 18 PHP
彻底搞懂PHP 变量结构体
Oct 11 PHP
基于php流程控制语句和循环控制语句(讲解)
Oct 23 PHP
thinkphp5实现无限级分类
Feb 18 PHP
PHP+MySQL实现无极限分类栏目的方法
Dec 23 #PHP
PHP多维数组转一维数组的简单实现方法
Dec 23 #PHP
详解WordPress中简码格式标签编写的基本方法
Dec 22 #PHP
WordPress中转义HTML与过滤链接的相关PHP函数使用解析
Dec 22 #PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
Dec 22 #PHP
WordPress主题中添加文章列表页页码导航的PHP代码实例
Dec 22 #PHP
解析WordPress中函数钩子hook的作用及基本用法
Dec 22 #PHP
You might like
PHP 和 MySQL 基础教程(三)
2006/10/09 PHP
PHP 操作文件的一些FAQ总结
2009/02/12 PHP
Admin generator, filters and I18n
2011/10/06 PHP
php中导出数据到excel时数字变为科学计数的解决方法
2013/02/03 PHP
解析web文件操作常见安全漏洞(目录、文件名检测漏洞)
2013/06/29 PHP
PHP 快速排序算法详解
2014/11/10 PHP
PHP var关键字相关原理及使用实例解析
2020/07/11 PHP
js类中获取外部函数名的方法
2007/08/19 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
jquery ajax post提交数据乱码
2013/11/05 Javascript
javascript函数定义的几种区别小结
2014/01/06 Javascript
使用jQuery不判断浏览器高度解决iframe自适应高度问题
2014/12/16 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
深入php面向对象、模式与实践
2016/02/16 Javascript
AngularJS 遇到的小坑与技巧小结
2016/06/07 Javascript
深入理解JavaScript中的预解析
2017/01/04 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
盘点提高 Python 代码效率的方法
2014/07/03 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
django使用haystack调用Elasticsearch实现索引搜索
2019/07/24 Python
pycharm内无法import已安装的模块问题解决
2020/02/12 Python
使用Python matplotlib作图时,设置横纵坐标轴数值以百分比(%)显示
2020/05/16 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
NHL官方在线商店:Shop.NHL.com
2020/05/01 全球购物
测控技术与仪器个人求职信范文
2013/12/30 职场文书
入学申请自荐信范文
2014/02/26 职场文书
幼儿园小班个人工作总结
2015/02/12 职场文书
护士医德医风心得体会
2016/01/25 职场文书