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 正则匹配函数体
Aug 25 PHP
解析php curl_setopt 函数的相关应用及介绍
Jun 17 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
php压缩和解压缩字符串的方法
Mar 14 PHP
php设计模式之委托模式
Feb 13 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
May 20 PHP
Laravel如何使用Redis共享Session
Feb 23 PHP
PHP实现会员账号单唯一登录的方法分析
Mar 07 PHP
php实现获取近几日、月时间示例
Jul 06 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 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
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
制作美丽的拉花
2021/03/03 冲泡冲煮
JSON在PHP中的应用介绍
2012/09/08 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
javascript 无提示关闭窗口脚本
2009/08/17 Javascript
JQuery对class属性的操作实现按钮开关效果
2013/10/11 Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
2013/12/24 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
vue项目中使用axios上传图片等文件操作
2017/11/02 Javascript
微信小程序scroll-view实现滚动穿透和阻止滚动的方法
2018/08/20 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
JS实现普通轮播图特效
2020/01/01 Javascript
[06:01]刀塔次级联赛top10第一期
2014/11/07 DOTA
Python的MongoDB模块PyMongo操作方法集锦
2016/01/05 Python
zookeeper python接口实例详解
2018/01/18 Python
python 构造三维全零数组的方法
2018/11/12 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
详解pycharm连接不上mysql数据库的解决办法
2020/01/10 Python
python简单实现最大似然估计&amp;scipy库的使用详解
2020/04/15 Python
Spring http服务远程调用实现过程解析
2020/06/11 Python
python使用ctypes库调用DLL动态链接库
2020/10/22 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
美国最大和最受信任的二手轮胎商店:Bestusedtires.com
2020/06/02 全球购物
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
班训口号大全
2014/06/18 职场文书
房屋授权委托书范本
2014/10/07 职场文书
2014年市场部工作总结
2014/11/25 职场文书
离婚协议书范本(通用篇)
2014/11/30 职场文书
2015年平安创建工作总结
2015/04/29 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
2019年七夕情人节浪漫祝福语大全!
2019/08/08 职场文书
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技