【问题标题】:PHP get_browser: how to identify ie7 versus ie6?PHP get_browser:如何识别 ie7 和 ie6?
【发布时间】:2010-11-05 17:51:45
【问题描述】:

有没有办法使用 PHP 的 get_browser() 函数来区分 IE7 和 IE6?

【问题讨论】:

    标签: php internet-explorer internet-explorer-6 internet-explorer-7 browser-detection


    【解决方案1】:

    您可以这样做:

    $browser = get_browser();
    
    if($browser->browser == 'IE' && $browser->majorver == 6) {
        echo "IE6";
    } elseif($browser->browser == 'IE' && $browser->majorver == 7) {
        echo "IE7";
    }
    

    快速查看官方get_browser() 文档将回答您的问题。 之前一定要阅读文档。

    【讨论】:

    • 与“IE”相比,您需要 == 吗?
    • get_browser(): browscap ini 指令未设置
    【解决方案2】:

    我读到 get_browser() 是一个相对较慢的函数,所以我正在寻找更快的函数。此代码检查 MSIE 7.0,输出“Otay!”如果是真的。基本上和上一篇的答案一样,只是更简洁一些。相当简单的 if 语句:

    <?php 
    if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0'))
        echo 'Otay!';
    ?>
    

    【讨论】:

      【解决方案3】:

      以下是取自here的完整示例。

      $browser = get_browser();
      
      switch ($browser->browser) {
          case "IE":
              switch ($browser->majorver) {
                  case 7:
                      echo '<link href="ie7.css" rel="stylesheet" type="text/css" />';
                      break;
                  case 6:
                  case 5:
                      echo '<link href="ie5plus.css" rel="stylesheet" type="text/css" />';
                      break;
                  default:
                      echo '<link href="ieold.css" rel="stylesheet" type="text/css" />';
              }
      
              break;
      
          case "Firefox":
          case "Mozilla":
              echo '<link href="gecko.css" rel="stylesheet" type="text/css" />';
              break;
      
          case "Netscape":
              if ($browser->majorver < 5) {
                  echo '<link href="nsold.css" rel="stylesheet" type="text/css" />';
              } else {
                  echo '<link href="gecko.css" rel="stylesheet" type="text/css" />';
              }
              break;
      
          case "Safari":
          case "Konqueror":
              echo '<link href="gecko.css" rel="stylesheet" type="text/css" />';
              break;
      
          case "Opera":
              echo '<link href="opera.css" rel="stylesheet" type="text/css" />';
              break;
      
          default:
              echo '<link href="unknown.css" rel="stylesheet" type="text/css" />';
      }
      

      【讨论】:

        【解决方案4】:

        如果您的逻辑是决定要包含哪些样式表或脚本,那么可能值得采用条件 cmets 的 HTML 路线:

        <!--[if IE 6]>
        According to the conditional comment this is Internet Explorer 6<br />
        <![endif]-->
        <!--[if IE 7]>
        According to the conditional comment this is Internet Explorer 7<br />
        <![endif]-->
        

        这样您就可以绕过任何自定义浏览器字符串等。更多信息请访问QuirksMode

        【讨论】:

          【解决方案5】:

          我发现了一个不同的、非常简单的 PHP IE6 条件解决方案,我可以出于自己的目的对其进行编辑:

          <?php  
          
          // IE6 string from user_agent  
           $ie6 = "MSIE 6.0";  
          
          // detect browser  
           $browser = $_SERVER['HTTP_USER_AGENT'];  
          
           // yank the version from the string  
           $browser = substr("$browser", 25, 8);  
          
           // if IE6 set the $alert   
           if($browser == $ie6){ 
                // put your code here    
           }  
           ?>  
          

          完整的脚本可以在这里找到:

          http://www.thatgrafix.com/php_detect/

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-03-07
            • 2010-10-20
            • 1970-01-01
            • 2011-07-29
            • 2011-11-02
            • 2011-02-14
            • 1970-01-01
            相关资源
            最近更新 更多