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二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
php中explode的负数limit用法分析
Feb 27 PHP
PHP下载远程图片的几种方法总结
Apr 07 PHP
php 函数使用可变数量的参数方法
May 02 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
Oct 23 PHP
phpcms实现验证码替换及phpcms实现全站搜索功能教程详解
Dec 13 PHP
laravel中的一些简单实用功能
Nov 03 PHP
PHP crc32()函数讲解
Feb 14 PHP
laravel 修改记住我功能的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中iconv函数使用方法
2008/05/24 PHP
基于php下载文件的详解
2013/06/02 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
深入浅析php json 格式控制
2015/12/24 PHP
js不是基础的基础
2006/12/24 Javascript
使用apply方法处理数组的三个技巧[译]
2012/09/20 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
JavaScript中的onerror事件概述及使用
2013/04/01 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
jquery实现多级下拉菜单的实例代码
2013/10/02 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
jQuery事件与动画基础详解
2017/02/23 Javascript
jQuery进阶实践之利用最优雅的方式如何写ajax请求
2017/12/20 jQuery
iview Upload组件多个文件上传的示例代码
2018/09/30 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
基于游标的分页接口实现代码示例
2018/11/12 Javascript
Node.js 路由的实现方法
2019/06/05 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
vue使用exif获取图片旋转,压缩的示例代码
2020/12/11 Vue.js
JS中锚点链接点击平滑滚动并自由调整到顶部位置
2021/02/06 Javascript
[47:04]LGD vs infamous Supermajor小组赛D组 BO3 第二场 6.3
2018/06/04 DOTA
python 读写文件包含多种编码格式的解决方式
2019/12/20 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
如何在python中实现线性回归
2020/08/10 Python
如何基于Python实现word文档重新排版
2020/09/29 Python
CSS3 border-image详解、应用及jQuery插件
2011/08/29 HTML / CSS
CSS3实现可翻转的hover效果
2018/05/23 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
保密工作承诺书
2014/08/29 职场文书
2014年学习厉行节约反对浪费思想汇报
2014/09/10 职场文书
论群众路线学习笔记
2014/11/06 职场文书
明星邀请函
2015/02/02 职场文书
2015年世界环境日活动方案
2015/05/05 职场文书
java中如何截取字符串最后一位
2022/07/07 Java/Android