一、我们可能要遇到下面这个问题:
>>如何用PHP判断浏览器类型?
我们知道,浏览器在和服务器连接时候都会先发送一些包含自己信息的内容;
这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型);
下面是我的系统中几款浏览器的USER_AGENT信息:
1 1.Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4
2
3 2.Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; 360SE)
4
5 3.Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
6
7 4.Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.6.30 Version/10.60
在这里我们要用到PHP strpos() 函数
定义和用法
strpos() 函数返回字符串在另一个字符串中第一次出现的位置。
如果没有找到该字符串,则返回 false。
语法
1 strpos(string,find,start)
参数 描述
string 必需。规定被搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定开始搜索的位置。
具体代码如下:
01 <?php
02 if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
03 echo "Internet Explorer 8.0";
04 else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
05 echo "Internet Explorer 7.0";
06 else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
07 echo "Internet Explorer 6.0";
08 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
09 echo "Firefox 3";
10 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
11 echo "Firefox 2";
12 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
13 echo "Google Chrome";
14 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
15 echo "Safari";
16 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
17 echo "Opera";
18 else echo $_SERVER["HTTP_USER_AGENT"];
19 ?>
.
细心的同学一定会注意到:
Opera的AGENT信息是Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.6.30 Version/10.60,strpos() 函数的返回值一定是0。
我们可以把
1 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
改写成
1 else if(strpos($_SERVER["HTTP_USER_AGENT"],"pera"))
现在,我们就可以写出最终代码:
1 <?php if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE")) { ?>
2
3 <?php } else {?>
4
5 <?php } ?>
判断浏览器类型:
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
判断浏览器语言:
<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
判断浏览器类型的具体程序如下:
1. <?php
2. if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
3. echo "Internet Explorer 8.0";
4. else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
5. echo "Internet Explorer 7.0";
6. else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
7. echo "Internet Explorer 6.0";
8. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
9. echo "Firefox 3";
10. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
11. echo "Firefox 2";
12. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
13. echo "Google Chrome";
14. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
15. echo "Safari";
16. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
17. echo "Opera";
18. else echo $_SERVER["HTTP_USER_AGENT"];
19. ?>
<?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"]; ?>
1. <?php
2. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
3. if (preg_match("/zh-c/i", $lang))
4. echo "简体中文";
5. else if (preg_match("/zh/i", $lang))
6. echo "繁體中文";
7. else if (preg_match("/en/i", $lang))
8. echo "English";
9. else if (preg_match("/fr/i", $lang))
10. echo "French";
11. else if (preg_match("/de/i", $lang))
12. echo "German";
13. else if (preg_match("/jp/i", $lang))
14. echo "Japanese";
15. else if (preg_match("/ko/i", $lang))
16. echo "Korean";
17. else if (preg_match("/es/i", $lang))
18. echo "Spanish";
19. else if (preg_match("/sv/i", $lang))
20. echo "Swedish";
21. else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
22. ?>
>>如何用PHP判断浏览器类型?
我们知道,浏览器在和服务器连接时候都会先发送一些包含自己信息的内容;
这里我们主要分析的是_SERVER["HTTP_USER_AGENT"](浏览器类型);
下面是我的系统中几款浏览器的USER_AGENT信息:
1 1.Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.99 Safari/533.4
2
3 2.Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; 360SE)
4
5 3.Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6
6
7 4.Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.6.30 Version/10.60
在这里我们要用到PHP strpos() 函数
定义和用法
strpos() 函数返回字符串在另一个字符串中第一次出现的位置。
如果没有找到该字符串,则返回 false。
语法
1 strpos(string,find,start)
参数 描述
string 必需。规定被搜索的字符串。
find 必需。规定要查找的字符。
start 可选。规定开始搜索的位置。
具体代码如下:
01 <?php
02 if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
03 echo "Internet Explorer 8.0";
04 else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
05 echo "Internet Explorer 7.0";
06 else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
07 echo "Internet Explorer 6.0";
08 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
09 echo "Firefox 3";
10 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
11 echo "Firefox 2";
12 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
13 echo "Google Chrome";
14 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
15 echo "Safari";
16 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
17 echo "Opera";
18 else echo $_SERVER["HTTP_USER_AGENT"];
19 ?>
.
细心的同学一定会注意到:
Opera的AGENT信息是Opera/9.80 (Windows NT 5.1; U; zh-cn) Presto/2.6.30 Version/10.60,strpos() 函数的返回值一定是0。
我们可以把
1 else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
改写成
1 else if(strpos($_SERVER["HTTP_USER_AGENT"],"pera"))
现在,我们就可以写出最终代码:
1 <?php if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE")) { ?>
2
3 <?php } else {?>
4
5 <?php } ?>
判断浏览器类型:
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
判断浏览器语言:
<?php echo $_SERVER["HTTP_ACCEPT_LANGUAGE"]; ?>
判断浏览器类型的具体程序如下:
1. <?php
2. if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 8.0"))
3. echo "Internet Explorer 8.0";
4. else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 7.0"))
5. echo "Internet Explorer 7.0";
6. else if(strpos($_SERVER["HTTP_USER_AGENT"],"MSIE 6.0"))
7. echo "Internet Explorer 6.0";
8. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/3"))
9. echo "Firefox 3";
10. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Firefox/2"))
11. echo "Firefox 2";
12. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Chrome"))
13. echo "Google Chrome";
14. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Safari"))
15. echo "Safari";
16. else if(strpos($_SERVER["HTTP_USER_AGENT"],"Opera"))
17. echo "Opera";
18. else echo $_SERVER["HTTP_USER_AGENT"];
19. ?>
<?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"]; ?>
1. <?php
2. $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 4); //只取前4位,这样只判断最优先的语言。如果取前5位,可能出现en,zh的情况,影响判断。
3. if (preg_match("/zh-c/i", $lang))
4. echo "简体中文";
5. else if (preg_match("/zh/i", $lang))
6. echo "繁體中文";
7. else if (preg_match("/en/i", $lang))
8. echo "English";
9. else if (preg_match("/fr/i", $lang))
10. echo "French";
11. else if (preg_match("/de/i", $lang))
12. echo "German";
13. else if (preg_match("/jp/i", $lang))
14. echo "Japanese";
15. else if (preg_match("/ko/i", $lang))
16. echo "Korean";
17. else if (preg_match("/es/i", $lang))
18. echo "Spanish";
19. else if (preg_match("/sv/i", $lang))
20. echo "Swedish";
21. else echo $_SERVER["HTTP_ACCEPT_LANGUAGE"];
22. ?>
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29753604/viewspace-1321342/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29753604/viewspace-1321342/