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数据库开发知多少
Oct 09 PHP
用PHP编程开发“虚拟域名”系统
Oct 09 PHP
php 图片上添加透明度渐变的效果
Jun 29 PHP
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
PHP入门经历和学习过程分享
Apr 11 PHP
PHP生成不重复标识符的方法
Nov 21 PHP
php+xml编程之xpath的应用实例
Jan 24 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
thinkPHP微信分享接口JSSDK用法实例
Jul 07 PHP
PHP实现的超长文本分页显示功能示例
Jun 04 PHP
PHP实现打包zip并下载功能
Jun 12 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+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
PHP抓取及分析网页的方法详解
2016/04/26 PHP
php 处理png图片白色背景色改为透明色的实例代码
2018/12/10 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
解决php扩展安装不生效问题
2019/10/25 PHP
web 页面分页打印的实现
2009/06/22 Javascript
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
jquery获取及设置outerhtml的方法
2015/03/09 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
Vue from-validate 表单验证的示例代码
2017/09/26 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
浅谈vue3中effect与computed的亲密关系
2019/10/10 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
[03:11]不朽宝藏三外观展示
2020/09/18 DOTA
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
Python多继承原理与用法示例
2018/08/23 Python
python实现大量图片重命名
2020/03/23 Python
Python 面向对象部分知识点小结
2020/03/09 Python
解决Jupyter因卸载重装导致的问题修复
2020/04/10 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
使用Django的JsonResponse返回数据的实现
2021/01/15 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
2021/02/26 Python
一站式跨境收款解决方案:Payoneer(派安盈)
2018/09/06 全球购物
中国一家综合的外贸B2C电子商务网站:DealeXtreme(DX)
2020/03/10 全球购物
SOKOLOV官网:俄罗斯珠宝首饰品牌
2021/01/02 全球购物
分解成质因数(如435234=251*17*17*3*2,据说是华为笔试题)
2014/07/16 面试题
国际语言毕业生求职信
2014/07/08 职场文书
导游词之徐州-云龙山
2019/09/29 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
SQL Server使用导出向导功能
2022/04/08 SQL Server
德生TECSUN S-2000使用手册文字版
2022/05/10 无线电