ITPub博客

首页 > 应用开发 > IT综合 > 判断浏览器类型及语言

判断浏览器类型及语言

原创 IT综合 作者:jyb2014 时间:2014-11-05 15:08:40 0 删除 编辑
一、我们可能要遇到下面这个问题:
>>如何用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     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    
2        
3    
4        
5    
判断浏览器类型:

判断浏览器语言:

判断浏览器类型的具体程序如下:
   1.    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. ?>  

   1.    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博客 ” ,链接:https://blog.itpub.net/29753604/viewspace-1321342/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: pyton操作excel
请登录后发表评论 登录
全部评论

注册时间:2014-07-15

  • 博文量
    101
  • 访问量
    196518