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 Ajax实现页面无刷新发表评论
Jan 02 PHP
菜鸟学PHP之Smarty入门
Jan 04 PHP
php生成随机数或者字符串的代码
Sep 05 PHP
php获取本地图片文件并生成xml文件输出具体思路
Apr 27 PHP
php上传图片客户端和服务器端实现方法
Mar 30 PHP
php实现mysql数据库分表分段备份
Jun 18 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP中使用foreach()遍历二维数组的简单实例
Jun 13 PHP
PHP中如何判断exec函数执行成功?
Aug 04 PHP
thinkPHP自定义类实现方法详解
Nov 30 PHP
thinkphp5 加载静态资源路径与常量的方法
Dec 24 PHP
解决windows上php xdebug 无法调试的问题
Feb 19 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+ajax实现无刷新分页的方法
2014/11/04 PHP
ThinkPHP实现ajax仿官网搜索功能实例
2014/12/02 PHP
php的4种常见运行方式
2015/03/20 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
JS面向对象、prototype、call()、apply()
2009/05/14 Javascript
JavaScript 的方法重载效果
2009/08/07 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
JS随机漂浮广告代码具体实例
2013/11/19 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
JavaScript实现解析INI文件内容的方法
2016/11/17 Javascript
如何理解jQuery中的ajaxSubmit方法
2017/03/13 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
vue实现微信获取用户信息的方法
2019/03/21 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
对vue中的事件穿透与禁止穿透实例详解
2019/10/28 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
微信小程序入门之指南针
2020/10/22 Javascript
vue中利用three.js实现全景图的完整示例
2020/12/07 Vue.js
Python数据结构之哈夫曼树定义与使用方法示例
2018/04/22 Python
解决pyttsx3无法封装的问题
2018/12/24 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
python列表切片和嵌套列表取值操作详解
2020/02/27 Python
AVIS安飞士奥地利租车官网:提供奥地利、欧洲和全世界汽车租赁
2016/11/29 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
出国留学自荐信
2013/10/25 职场文书
护理专科学生自荐书
2014/07/05 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
国庆节标语大全
2014/10/08 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
2019员工保密协议书(3篇)
2019/09/23 职场文书