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的一个完整SMTP类(解决邮件服务器需要验证时的问题)
Oct 09 PHP
使用 MySQL 开始 PHP 会话
Dec 21 PHP
cache_lite试用
Feb 14 PHP
PHP获取文件绝对路径的代码(上一级目录)
May 29 PHP
php中Smarty模板初体验
Aug 08 PHP
PHP文件大小格式化函数合集
Mar 10 PHP
PHP二维数组排序的3种方法和自定义函数分享
Apr 09 PHP
php结合js实现点击超链接执行删除确认操作
Oct 31 PHP
php计算两个日期相差天数的方法
Mar 14 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP Socket网络操作类定义与用法示例
Aug 30 PHP
PHP实时统计中文字数和区别
Feb 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
php preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
跟我学Laravel之快速入门
2014/10/15 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
JavaScript的设计模式经典之建造者模式
2016/02/24 Javascript
Javascript的比较汇总
2016/07/25 Javascript
JS实现带动画的回到顶部效果
2017/12/28 Javascript
Node.Js中实现端口重用原理详解
2018/05/03 Javascript
Vue Promise的axios请求封装详解
2018/08/13 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
javaScript中indexOf用法技巧
2019/11/26 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
微信小程序淘宝首页双排图片布局排版代码(推荐)
2020/10/29 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
python二分法实现实例
2013/11/21 Python
在Python的Flask框架中使用模版的入门教程
2015/04/20 Python
基python实现多线程网页爬虫
2015/09/06 Python
Python sqlite3事务处理方法实例分析
2017/06/19 Python
Pycharm运行加载文本出现错误的解决方法
2019/06/27 Python
详解Python实现进度条的4种方式
2020/01/15 Python
如何通过python实现全排列
2020/02/11 Python
实例讲解使用CSS实现多边框和透明边框的方法
2015/09/08 HTML / CSS
HTML5实现预览本地图片
2016/02/17 HTML / CSS
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
美国50岁以上单身人士约会平台:SilverSingles
2018/06/29 全球购物
护理个人求职信范文
2014/01/08 职场文书
临床医师个人自我评价
2014/04/06 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
《中国机长》观后感:敬畏生命,敬畏职责
2019/11/12 职场文书
mysql如何能有效防止删库跑路
2021/10/05 MySQL