判断浏览器类型及语言

一、我们可能要遇到下面这个问题:
>>如何用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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值