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 相关文章推荐
4.与数据库的连接
Oct 09 PHP
文件系统基本操作类
Nov 23 PHP
windows下zendframework项目环境搭建(通过命令行配置)
Dec 06 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
Oct 16 PHP
ThinkPHP模版引擎之变量输出详解
Dec 05 PHP
Yii2实现ajax上传图片插件用法
Apr 28 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
Jan 16 PHP
php微信开发之谷歌测距
Jun 14 PHP
PHP实现数组和对象的相互转换操作示例
Mar 20 PHP
基于laravel where的高级使用方法
Oct 10 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
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
PHP生成便于打印的网页
2006/10/09 PHP
php Smarty date_format [格式化时间日期]
2010/03/15 PHP
使用ThinkPHP+Uploadify实现图片上传功能
2014/06/26 PHP
php文件缓存类汇总
2014/11/21 PHP
基于jquery的滑动样例代码
2010/11/20 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
Flex通过JS获取客户端IP和计算机名的实例代码
2013/11/21 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
javascript数组遍历的方法实例分析
2016/09/13 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
详解plotly.js 绘图库入门使用教程
2018/02/23 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
js html实现计算器功能
2018/11/13 Javascript
微信小程序实现发微博功能的示例代码
2020/06/24 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
PyQt5+Pycharm安装和配置图文教程详解
2020/03/24 Python
Python使用pycharm导入pymysql教程
2020/09/16 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
解决Pyinstaller打包软件失败的一个坑
2021/03/04 Python
HTML5资源预加载(Link prefetch)详细介绍(给你的网页加速)
2014/05/07 HTML / CSS
Feelunique中文官网:欧洲最大化妆品零售电商
2020/07/10 全球购物
生产厂厂长岗位职责
2013/12/25 职场文书
安全协议书范本
2014/04/21 职场文书
质量提升方案
2014/06/16 职场文书
离婚协议书怎么写
2015/01/26 职场文书
公司聚餐通知
2015/04/22 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
2019新员工试用期转正工作总结范文
2019/08/21 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书