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之第一天
Oct 09 PHP
实用函数3
Nov 08 PHP
用Zend Encode编写开发PHP程序
Feb 21 PHP
基于PHP文件操作的详解
Jun 05 PHP
Zend studio文件注释模板设置方法
Sep 29 PHP
php实现redis数据库指定库号迁移的方法
Jan 14 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
支付宝支付开发――当面付条码支付和扫码支付实例
Nov 04 PHP
PHP实现文件下载【实例分享】
Apr 28 PHP
PHP编程求最大公约数与最小公倍数的方法示例
May 29 PHP
PHP读取目录树的实现方法分析
Mar 22 PHP
Yii框架Session与Cookie使用方法示例
Oct 14 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 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php获取本周开始日期和结束日期的方法
2015/03/09 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
XmlUtils JS操作XML工具类
2009/10/01 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
Jquery针对tr td的一些实用操作方法(必看篇)
2016/10/05 Javascript
深入理解JS继承和原型链的问题
2016/12/17 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
2017/02/27 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
vue-cli3.0如何使用CDN区分开发、生产、预发布环境
2018/11/22 Javascript
js实现for循环跳过undefined值示例
2019/07/02 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
[38:23]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第一场
2014/05/24 DOTA
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
python获取各操作系统硬件信息的方法
2015/06/03 Python
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
python内置数据类型之列表操作
2018/11/12 Python
Python3中函数参数传递方式实例详解
2019/05/05 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
彻底弄明白CSS3的Media Queries(跨平台设计)
2010/07/27 HTML / CSS
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
eBay德国站:eBay.de
2017/09/14 全球购物
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
linux面试题参考答案(10)
2016/10/26 面试题
护士长竞聘演讲稿
2014/04/30 职场文书
水利水电专业自荐信
2014/07/08 职场文书
单位租房协议书范本
2014/12/04 职场文书
运动会800米赞词
2015/07/22 职场文书
2016年小学“公民道德宣传日”活动总结
2016/04/01 职场文书
如何撰写促销方案?
2019/07/05 职场文书
pytorch中F.avg_pool1d()和F.avg_pool2d()的使用操作
2021/05/22 Python