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中$this-&amp;gt;含义分析
Nov 29 PHP
PHP rawurlencode与urlencode函数的深入分析
Jun 08 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
php下载文件源代码(强制任意文件格式下载)
May 09 PHP
PHP小技巧之函数重载
Jun 02 PHP
PHP使用json_encode函数时不转义中文的解决方法
Nov 12 PHP
PHP中的事务使用实例
May 26 PHP
php开发工具有哪五款
Nov 09 PHP
php实现面包屑导航例子分享
Dec 19 PHP
php使用ftp远程上传文件类(完美解决主从文件同步问题的方法)
Sep 23 PHP
php读取和保存base64编码的图片内容
Apr 22 PHP
PHP长网址与短网址的实现方法
Oct 13 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 下载保存文件保存到本地的两种实现方法
2013/08/12 PHP
php中substr()函数参数说明及用法实例
2014/11/15 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
PHP人民币金额转大写实例代码
2015/10/02 PHP
php时间函数用法分析
2016/05/28 PHP
JavaScript静态的动态
2006/09/18 Javascript
JS的反射问题
2010/04/07 Javascript
dess中一个简单的多路委托的实现
2010/07/20 Javascript
jquery1.9 下检测浏览器类型和版本的方法
2013/12/26 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
简单学习JavaScript中的for语句循环结构
2015/11/10 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
React Native实现简单的登录功能(推荐)
2016/09/19 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】
2018/12/13 Javascript
详解jquery和vue对比
2019/04/16 jQuery
vue 实现Web端的定位功能 获取经纬度
2019/08/08 Javascript
vue移动端的左右滑动事件详解
2020/06/17 Javascript
vue实现循环滚动列表
2020/06/30 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
python爬虫之验证码篇3-滑动验证码识别技术
2019/04/11 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
利用HTML5中Geolocation获取地理位置调用Google Map API在Google Map上定位
2013/01/23 HTML / CSS
eBay加拿大站:eBay.ca
2019/06/20 全球购物
大学生找工作推荐信范文
2013/11/28 职场文书
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
小露珠教学反思
2014/04/30 职场文书
生日庆典策划方案
2014/06/02 职场文书
党性观念心得体会
2014/09/03 职场文书
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS
JavaScript 对象创建的3种方法
2021/11/17 Javascript
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技
Beekeeper Studio开源数据库管理工具比Navicat更炫酷
2022/06/21 数据库
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android