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 相关文章推荐
Oracle Faq(Oracle的版本)
Oct 09 PHP
PHP+DBM的同学录程序(2)
Oct 09 PHP
ThinkPHP自动验证失败的解决方法
Jun 09 PHP
php记录日志的实现代码
Aug 08 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
解析PHPExcel使用的常用说明以及把PHPExcel整合进CI框架的介绍
Jun 24 PHP
在PHP中运行Linux命令并启动SSH服务的例子
Jun 12 PHP
实例详解PHP中html word 互转的方法
Jan 28 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
Dec 21 PHP
PHP使用OB缓存实现静态化功能示例
Mar 23 PHP
PHP 命名空间和自动加载原理与用法实例分析
Apr 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开发需要注意的安全问题
2010/09/01 PHP
php 记录进行累加并显示总时长为秒的结果
2011/11/04 PHP
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
destoon利用Rewrite规则设置网站安全
2014/06/21 PHP
Laravel框架控制器的request与response用法示例
2019/09/30 PHP
PHP Swoole异步MySQL客户端实现方法示例
2019/10/24 PHP
PHP如何开启Opcache功能提升程序处理效率
2020/04/27 PHP
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
JS求平均值的小例子
2013/11/29 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
jquery实现textarea输入框限制字数的方法
2015/01/15 Javascript
js实现数字每三位加逗号的方法
2015/02/05 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
JavaScript的RequireJS库入门指南
2015/07/01 Javascript
浅谈jQuery的offset()方法及示例分享
2015/07/17 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
基于Bootstrap的后台管理面板 Bootstrap Metro Dashboard
2016/06/17 Javascript
深入理解(function(){... })();
2016/08/16 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
基于javascript实现数字英文验证码
2017/01/25 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
vue.js 实现图片本地预览 裁剪 压缩 上传功能
2018/03/01 Javascript
引入外部js脚本加载慢与页面白屏问题的解决
2018/12/10 Javascript
微信小程序bindinput与bindsubmit的区别实例分析
2019/04/17 Javascript
微信小程序实现的绘制table表格功能示例
2019/04/26 Javascript
微信小程序实现左侧滑栏过程解析
2019/08/26 Javascript
[01:14]DOTA2 7.22版本新增神杖效果展示(智力英雄篇)
2019/05/29 DOTA
简单谈谈python中的Queue与多进程
2016/08/25 Python
python修改list中所有元素类型的三种方法
2018/04/09 Python
selenium+python自动化测试之环境搭建
2019/01/23 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
2014年医院工作总结
2014/11/20 职场文书
单位同意报考证明
2015/06/17 职场文书
2016入党培训心得体会范文
2016/01/08 职场文书
六五普法学习心得体会
2016/01/21 职场文书