PHP获取用户的浏览器与操作系统信息的代码


Posted in PHP onSeptember 04, 2012

1.用户访问服务器时,利用PHP的超级全局变量$_SERVER数组中字段['HTTP_USER_AGENT'] 获取访问用户的所有信息

我访问时的$_SERVER['HTTP_USER_AGENT'] 字符串 :

Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/5.0.342.3 Safari/533.2

2.利用正则表达式匹配以上字符串,用户的浏览器 操作系统信息

3.PHP根据匹配后的字符串(用户的浏览器 操作系统信息),分配需要的CSS文件,JS等等…返回给用户

我的浏览器 操作系统信息
Browser: Chrome 5.0

Platform: Windows 7

代码如下:

<?php
//显示访问用户的浏览器信息
echo 'Browser: ' . determinebrowser($Agent) . '<BR>';
//显示访问用户的操作系统平台
echo 'Platform: ' . determineplatform($Agent). '<BR>';
//正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息
function determinebrowser ($Agent) {
$browseragent="";   //浏览器
$browserversion=""; //浏览器的版本
if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Internet Explorer";
} else if (ereg( 'Opera/([0-9]{1,2}.[0-9]{1,2})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Opera";
} else if (ereg( 'Firefox/([0-9.]{1,5})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Firefox";
}else if (ereg( 'Chrome/([0-9.]{1,3})',$Agent,$version)) {
 $browserversion=$version[1];
 $browseragent="Chrome";
}
else if (ereg( 'Safari/([0-9.]{1,3})',$Agent,$version)) {
 $browseragent="Safari";
 $browserversion="";
}
else {
$browserversion="";
$browseragent="Unknown";
}
return $browseragent." ".$browserversion;
}
// 同理获取访问用户的浏览器的信息
function determineplatform ($Agent) {
$browserplatform=='';
if (eregi('win',$Agent) && strpos($Agent, '95')) {
$browserplatform="Windows 95";
}
elseif (eregi('win 9x',$Agent) && strpos($Agent, '4.90')) {
$browserplatform="Windows ME";
}
elseif (eregi('win',$Agent) && ereg('98',$Agent)) {
$browserplatform="Windows 98";
}
elseif (eregi('win',$Agent) && eregi('nt 5.0',$Agent)) {
$browserplatform="Windows 2000";
}
elseif (eregi('win',$Agent) && eregi('nt 5.1',$Agent)) {
$browserplatform="Windows XP";
}
elseif (eregi('win',$Agent) && eregi('nt 6.0',$Agent)) {
$browserplatform="Windows Vista";
}
elseif (eregi('win',$Agent) && eregi('nt 6.1',$Agent)) {
$browserplatform="Windows 7";
}
elseif (eregi('win',$Agent) && ereg('32',$Agent)) {
$browserplatform="Windows 32";
}
elseif (eregi('win',$Agent) && eregi('nt',$Agent)) {
$browserplatform="Windows NT";
}elseif (eregi('Mac OS',$Agent)) {
$browserplatform="Mac OS";
}
elseif (eregi('linux',$Agent)) {
$browserplatform="Linux";
}
elseif (eregi('unix',$Agent)) {
$browserplatform="Unix";
}
elseif (eregi('sun',$Agent) && eregi('os',$Agent)) {
$browserplatform="SunOS";
}
elseif (eregi('ibm',$Agent) && eregi('os',$Agent)) {
$browserplatform="IBM OS/2";
}
elseif (eregi('Mac',$Agent) && eregi('PC',$Agent)) {
$browserplatform="Macintosh";
}
elseif (eregi('PowerPC',$Agent)) {
$browserplatform="PowerPC";
}
elseif (eregi('AIX',$Agent)) {
$browserplatform="AIX";
}
elseif (eregi('HPUX',$Agent)) {
$browserplatform="HPUX";
}
elseif (eregi('NetBSD',$Agent)) {
$browserplatform="NetBSD";
}
elseif (eregi('BSD',$Agent)) {
$browserplatform="BSD";
}
elseif (ereg('OSF1',$Agent)) {
$browserplatform="OSF1";
}
elseif (ereg('IRIX',$Agent)) {
$browserplatform="IRIX";
}
elseif (eregi('FreeBSD',$Agent)) {
$browserplatform="FreeBSD";
}
if ($browserplatform=='') {$browserplatform = "Unknown"; }
return $browserplatform;
}
?>
PHP 相关文章推荐
社区(php&amp;&amp;mysql)二
Oct 09 PHP
php adodb连接不同数据库
Mar 19 PHP
PHPLog php 程序调试追踪工具
Sep 09 PHP
php删除文件夹及其文件夹下所有文件的函数代码
Jan 23 PHP
PHP数据类型之布尔型的介绍
Apr 28 PHP
php+mysql查询优化简单实例
Jan 13 PHP
php使用Jpgraph绘制饼状图的方法
Jun 10 PHP
CodeIgniter扩展核心类实例详解
Jan 20 PHP
PHP下载文件的函数实例代码
May 18 PHP
php实现贪吃蛇小游戏
Jul 26 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
laravel中短信发送验证码的实现方法
Apr 25 PHP
PHP中根据IP地址判断城市实现城市切换或跳转代码
Sep 04 #PHP
PHP中“简单工厂模式”实例代码讲解
Sep 04 #PHP
通过php快速统计某个数据库中每张表的数据量
Sep 04 #PHP
比较discuz和ecshop的截取字符串函数php版
Sep 03 #PHP
Windows下部署Apache+PHP+MySQL运行环境实战
Aug 31 #PHP
关于UEditor编辑器远程图片上传失败的解决办法
Aug 31 #PHP
php数组一对一替换实现代码
Aug 31 #PHP
You might like
php中的一个中文字符串截取函数
2007/02/14 PHP
php 远程关机操作的代码
2008/12/05 PHP
7个超级实用的PHP代码片段
2011/07/11 PHP
解析在PHP中使用mysqli扩展库对mysql的操作
2013/07/03 PHP
PHP获取表单所有复选框的值的方法
2014/08/28 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
2017/05/12 PHP
用Jquery实现滚动新闻
2014/02/12 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
jQuery实现转动随机数抽奖效果的方法
2015/05/21 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
纯js实现悬浮按钮组件
2016/12/17 Javascript
JavaScript实现QQ聊天消息展示和评论提交功能
2017/05/22 Javascript
vue项目引入Iconfont图标库的教程图解
2018/10/24 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Vue SPA 初次进入加载动画实现代码
2019/11/14 Javascript
[01:24:51]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第二场
2014/05/26 DOTA
Django静态资源URL STATIC_ROOT的配置方法
2014/11/08 Python
python uuid模块使用实例
2015/04/08 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
python下10个简单实例代码
2017/11/15 Python
python 批量添加的button 使用同一点击事件的方法
2019/07/17 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
python自动生成model文件过程详解
2019/11/02 Python
Python如何计算语句执行时间
2019/11/22 Python
PyInstaller的安装和使用的详细步骤
2020/06/02 Python
Shopee马来西亚:随拍即卖,最佳行动电商拍卖平台
2017/06/05 全球购物
Tirendo比利时:在线购买轮胎
2018/10/22 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
数据库面试要点基本概念
2013/10/31 面试题
市场营销专业毕业生自荐信
2013/11/02 职场文书
我的中国梦口号
2014/06/16 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书