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 相关文章推荐
phpBB BBcode处理的漏洞
Oct 09 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
Sep 11 PHP
php生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
免费手机号码归属地API查询接口和PHP使用实例分享
Apr 10 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
May 10 PHP
yii2实现 &quot;上一篇,下一篇&quot; 功能的代码实例
Feb 04 PHP
YII框架中使用memcache的方法详解
Aug 02 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
php设计模式之适配器模式原理、用法及注意事项详解
Sep 24 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
PHP页面静态化――纯静态与伪静态用法详解
Jun 05 PHP
php引用传递
Apr 01 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
用Flash图形化数据(一)
2006/10/09 PHP
PHP抓取网页、解析HTML常用的方法总结
2015/07/01 PHP
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
jquery.simple.tree插件 更简单,兼容性更好的无限树插件
2010/09/03 Javascript
jqeury eval将字符串转换json的方法
2011/01/20 Javascript
JavaScript中对象property的删除方法介绍
2014/12/30 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
原生js与jQuery实现简单的tab切换特效对比
2015/07/30 Javascript
JS中常用的输出方式(五种)
2016/06/12 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
微信小程序 页面跳转和数据传递实例详解
2017/01/19 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
JS数组去重的6种方法完整实例
2018/12/08 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
微信小程序文章详情功能完整实例
2020/06/03 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
如何通过Proxy实现JSBridge模块化封装
2020/10/22 Javascript
Python字典操作简明总结
2015/04/13 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
python3中str(字符串)的使用教程
2017/03/23 Python
Flask框架工厂函数用法实例分析
2019/05/25 Python
Python代码使用 Pyftpdlib实现FTP服务器功能
2019/07/22 Python
Python实现简单的2048小游戏
2021/03/01 Python
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
意大利奢侈品综合电商网站:MODES
2019/12/14 全球购物
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
文秘应届生求职信
2014/07/05 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
党员评议表自我评价范文
2014/10/20 职场文书
大学生学期个人总结
2015/02/12 职场文书
2016入党积极分子党课培训心得体会
2016/01/06 职场文书
2016党员干部廉政准则学习心得体会
2016/01/20 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python