Mar 14, 2007
PHP判断浏览器类型和浏览器语言
用php语言来判断浏览器类型其实很简单。
因为浏览器在和服务器连接时候都会先发送一些包含自己信息的内容(浏览器类型、语言啦)。
这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型)和_SERVER["HTTP_ACCEPT_LANGUAGE"](浏览器语言)。
我们所要做的就是把这些内容读出来,然后用strpos或者preg_match函数来对比就可以了。
判断浏览器类型:
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
判断浏览器语言:
<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
判断浏览器类型的具体程序如下:
<?php if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0")) echo "Internet Explorer 8.0"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0")) echo "Internet Explorer 7.0"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0")) echo "Internet Explorer 6.0"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3")) echo "Firefox 3"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2")) echo "Firefox 2"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome")) echo "Google Chrome"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari")) echo "Safari"; else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera")) echo "Opera"; else echo $_SERVER["HTTP_USER_AGENT"]; ?>
判断浏览器语言的具体程序如下:
<?php
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
if (preg_match("/zh-c/i", $lang))
echo "简体中文";
else if (preg_match("/zh/i", $lang))
echo "繁體中文";
else if (preg_match("/en/i", $lang))
echo "English";
else if (preg_match("/fr/i", $lang))
echo "French";
else if (preg_match("/de/i", $lang))
echo "German";
else if (preg_match("/jp/i", $lang))
echo "Japanese";
else if (preg_match("/ko/i", $lang))
echo "Korean";
else if (preg_match("/es/i", $lang))
echo "Spanish";
else if (preg_match("/sv/i", $lang))
echo "Swedish";
else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
?>
这是根据上面的代码做出来的一个小程序:
www.znsun.com/Download/test.php
判断浏览器类型主要是靠分析_SERVER["HTTP_USER_AGENT"]的内容,而分析浏览器语言则是分析_SERVER["HTTP_ACCEPT_LANGUAGE"]。
At 2007.11.19 09:02, aoyuxuan said:
判断浏览器语言用这个有点不准啊。
[Reply]
At 2009.08.20 00:12, SUN said:
哦,已经更新过了。
[Reply]
At 2010.09.01 02:34, sfengz said:
学习了,博客主题对IE支持度不好,正想屏掉IE
[Reply]
At 2010.10.22 15:57, pcrazyc said:
判断浏览器语言的,没有必须取前几位吧,$_SERVER['HTTP_ACCEPT_LANGUAGE']返回的值都是用","隔开的,浏览器的语言就是第一个","以前的,这样应该好办了吧,没有必要来一大串判断
[Reply]
At 2010.10.22 16:17, pcrazyc said:
http://blog.csdn.net/pClass_DayDayUp/archive/2010/10/22/5959268.aspx
看下这个吧,获取的绝对是正确的
[Reply]
At 2011.09.21 10:31, wordpress 的一些设置 -CM_YeSan said:
[...] http://www.zrblog.net/1331.html http://pigmod.com/archives/no-ad-for-kilu-170.html PHP判断浏览器类型和浏览器语言 为WordPress主题添加Tag云页 WordPress修改固定链接的方法 Tags: wordpress Leave a [...]
[Reply]
At 2011.09.21 19:29, wordpress 的一些设置 -AllangSpace said:
[...] http://www.zrblog.net/1331.html http://pigmod.com/archives/no-ad-for-kilu-170.html PHP判断浏览器类型和浏览器语言 为WordPress主题添加Tag云页 WordPress修改固定链接的方法 Tags: wordpress Leave a [...]
[Reply]
At 2011.11.16 15:45, Rivsen said:
如果我的php脚本既能在终端执行也能在浏览器执行,那个怎么做这些判断呢?
[Reply]