PHP通过获取用户代理头字符串信息,进行匹配和判断浏览器信息和浏览器版本的信息,也可以进行蜘蛛的判断等。获调用的全局变量进行获取用户浏览器信息:$_SERVER[‘HTTP_USER_AGENT’]。
获取用户浏览器信息代码:
function get_broswer() {
$sys = $_SERVER['HTTP_USER_AGENT'];
//获取用户代理字符串
if (stripos($sys, "Firefox/") > 0) {
preg_match("/Firefox/([^;)]+)+/i", $sys, $b);
$exp[0] = "Firefox";
$exp[1] = $b[1];
//获取火狐浏览器的版本号
} elseif (stripos($sys, "Maxthon") > 0) {
preg_match("/Maxthon/([d.]+)/", $sys, $aoyou);
$exp[0] = "傲游";
$exp[1] = $aoyou[1];
} elseif (stripos($sys, "Baiduspider") > 0) {
$exp[0] = "百度";
$exp[1] = '蜘蛛';
} elseif (stripos($sys, "YisouSpider") > 0) {
$exp[0] = "一搜";
$exp[1] = '蜘蛛';
} elseif (stripos($sys, "Googlebot") > 0) {
$exp[0] = "谷歌";
$exp[1] = '蜘蛛';
} elseif (stripos($sys, "Android 4.3") > 0) {
$exp[0] = "安卓";
$exp[1] = '4.3';
} elseif (stripos($sys, "MSIE") > 0) {
preg_match("/MSIEs+([^;)]+)+/i", $sys, $ie);
$exp[0] = "IE";
$exp[1] = $ie[1];
//获取IE的版本号
} elseif (stripos($sys, "OPR") > 0) {
preg_match("/OPR/([d.]+)/", $sys, $opera);
$exp[0] = "Opera";
$exp[1] = $opera[1];
} elseif(stripos($sys, "Edge") > 0) {
//win10 Edge浏览器 添加了chrome内核标记 在判断Chrome之前匹配
preg_match("/Edge/([d.]+)/", $sys, $Edge);
$exp[0] = "Edge";
$exp[1] = $Edge[1];
} elseif (stripos($sys, "Chrome") > 0) {
preg_match("/Chrome/([d.]+)/", $sys, $google);
$exp[0] = "Chrome";
$exp[1] = $google[1];
//获取google chrome的版本号
} elseif(stripos($sys,'rv:')>0 && stripos($sys,'Gecko')>0) {
preg_match("/rv:([d.]+)/", $sys, $IE);
$exp[0] = "IE";
$exp[1] = $IE[1];
} else if(stripos($sys,'AhrefsBot')>0) {
$exp[0] = "AhrefsBot";
$exp[1] = '蜘蛛';
} else if(stripos($sys,'Safari')>0) {
preg_match("/([d.]+)/", $sys, $safari);
$exp[0] = "Safari";
$exp[1] = $safari[1];
} else if(stripos($sys,'bingbot')>0) {
$exp[0] = "必应";
$exp[1] = '蜘蛛';
} else if(stripos($sys,'WinHttp')>0) {
$exp[0] = "windows";
$exp[1] = 'WinHttp 请求接口工具';
} else if(stripos($sys,'iPhone OS 10')>0) {
$exp[0] = "iPhone";
$exp[1] = 'OS 10';
} else if(stripos($sys,'Sogou')>0) {
$exp[0] = "搜狗";
$exp[1] = '蜘蛛';
} else if(stripos($sys,'HUAWEIM')>0) {
$exp[0] = "华为";
$exp[1] = '手机端';
} else if(stripos($sys,'Dalvik')>0) {
$exp[0] = "安卓";
$exp[1] = 'Dalvik虚拟机';
} else if(stripos($sys,'Mac OS X 10')>0) {
$exp[0] = "MAC";
$exp[1] = 'OS X10';
} else if(stripos($sys,'Opera/9.8')>0) {
$exp[0] = "Opera";
$exp[1] = '9.8';
} else if(stripos($sys,'JikeSpider')>0) {
$exp[0] = "即刻";
$exp[1] = '蜘蛛';
} else if(stripos($sys,'Baiduspider')>0) {
$exp[0] = "百度";
$exp[1] = '蜘蛛';
} else {
$exp[0] = $sys;
$exp[1] = "";
}
return $exp[0].' '.$exp[1];
}