下面我们就一起来学习如何使用php获取客户端浏览器与操作系统信息,有兴趣的朋友可以参考下。
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>';
//link:http://www.jbxue.com
//正值表达式比对解析$_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;
}
?>
