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 魔术函数使用说明
May 14 PHP
PHPExcel读取Excel文件的实现代码
Dec 06 PHP
PHP执行批量mysql语句的解决方法
May 02 PHP
解析PHP中如何将数组变量写入文件
Jun 06 PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 PHP
PHP编程风格规范分享
Jan 15 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
百度实时推送api接口应用示例
Oct 21 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
php常用字符函数实例小结
Dec 29 PHP
php中的异常和错误浅析
May 03 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数组对比函数,存在交集则返回真,否则返回假
2011/02/03 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP根据传来的16进制颜色代码自动改变背景颜色
2014/06/13 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
thinkPHP5分页功能实现方法分析
2017/10/25 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
javascript字典探测用户名工具
2006/10/05 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
Javascript设计模式之观察者模式的多个实现版本实例
2015/03/03 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
通过js获取上传的图片信息(临时保存路径,名称,大小)然后通过ajax传递给后端的方法
2015/10/01 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
微信小程序icon组件使用详解
2018/01/31 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
如何获取vue单文件自身源码路径
2019/05/06 Javascript
小程序input数据双向绑定实现方法
2019/10/17 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
JavaScript实现筛选数组
2021/03/02 Javascript
Python实现Kmeans聚类算法
2020/06/10 Python
OpenCV+Python识别车牌和字符分割的实现
2019/01/31 Python
python通过链接抓取网站详解
2019/11/20 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
Python计算IV值的示例讲解
2020/02/28 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
HTML5 script元素async、defer异步加载使用介绍
2013/08/23 HTML / CSS
2014年党员承诺书范文
2014/05/20 职场文书
化工专业求职信
2014/07/01 职场文书
会计岗位职责
2015/02/03 职场文书
计划生育责任书
2015/05/09 职场文书
KVM基础命令详解
2022/04/30 Servers