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 相关文章推荐
windows下PHP_intl.dll正确配置方法(apache2.2+php5.3.5)
Jan 14 PHP
YII中assets的使用示例
Jul 31 PHP
php中call_user_func函数使用注意事项
Nov 21 PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 PHP
php按单词截取字符串的方法
Apr 07 PHP
最准确的php截取字符串长度函数
Oct 29 PHP
PHP抓取及分析网页的方法详解
Apr 26 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
Nov 21 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
调试php程序的简单步骤
Oct 04 PHP
使用laravel根据用户类型来显示或隐藏字段
Oct 17 PHP
php查看一个变量的占用内存的实例代码
Mar 29 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获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
php实现将数据做成json的格式给前端使用
2018/08/21 PHP
TNC vs IO BO3 第二场2.13
2021/03/10 DOTA
理解JavaScript变量作用域更轻松
2009/10/25 Javascript
jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮
2013/10/11 Javascript
js showModalDialog参数的使用详解
2014/01/07 Javascript
单击某一段文字改写文本颜色
2014/06/06 Javascript
JavaScript设置body高度为浏览器高度的方法
2015/02/09 Javascript
jQuery标签编辑插件Tagit使用指南
2015/04/21 Javascript
jquery验证邮箱格式并显示提交按钮
2015/11/07 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
JavaScript实现汉字转换为拼音的库文件示例
2016/12/22 Javascript
Javascript中的 “&amp;” 和 “|” 详解
2017/02/02 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
js面试题之异步问题的深入理解
2020/09/20 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
在Python中使用模块的教程
2015/04/27 Python
Python3安装Scrapy的方法步骤
2017/11/23 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
Python多重继承的方法解析执行顺序实例分析
2018/05/26 Python
python爬虫之urllib3的使用示例
2018/07/09 Python
Python3远程监控程序的实现方法
2019/07/15 Python
python搜索包的路径的实现方法
2019/07/19 Python
python实现网站微信登录的示例代码
2019/09/18 Python
使用python实现CGI环境搭建过程解析
2020/04/28 Python
python反编译教程之2048小游戏实例
2021/03/03 Python
日本小田急百货官网:Odakyu
2018/07/19 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
学院领导推荐信
2013/10/30 职场文书
开门红主持词
2014/04/02 职场文书
医学专业大学生求职信
2014/07/12 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
群众路线教师自我剖析材料
2014/09/29 职场文书
搞笑婚庆主持词
2015/06/29 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL