<script type="text/javascript"> 
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase(); 
        if (window.ActiveXObject){
            Sys.ie = ua.match(/msie ([\d.]+)/i)[1]
            if(window.XMLHttpRequest) Sys.ie = "7.0"
            if(window.XDomainRequest) Sys.ie = "8.0"
            if(window.external.max_version) Sys.maxthon =  parseFloat(window.external.max_version);
        }
        else if (document.getBoxObjectFor) 
            Sys.firefox = ua.match(/firefox\/([\d.]+)/i)[1] 
        else if (window.MessageEvent && !document.getBoxObjectFor) 
            Sys.chrome = ua.match(/chrome\/([\d.]+)/i)[1] 
        else if (window.opera) 
            Sys.opera = ua.match(/opera.([\d.]+)/i)[1] 
        else if (window.openDatabase) 
            Sys.safari = ua.match(/version\/([\d.]+)/i)[1];
        else Sys.noBrowser = true;
        
        //以下进行测试 
         if(Sys.ie) document.write('IE: '+Sys.ie); 
        if(Sys.firefox) document.write('Firefox: '+Sys.firefox); 
        if(Sys.chrome) document.write('Chrome: '+Sys.chrome); 
        if(Sys.opera) document.write('Opera: '+Sys.opera); 
        if(Sys.safari) document.write('Safari: '+Sys.safari); 
        if(Sys.maxthon) document.write('maxthon: '+Sys.maxthon); 
        if(Sys.noBrowser) document.write('无法判断的浏览器版本');
    </script> 

解决方案 »

  1.   

    检测浏览器?
    JS不是很好吗,干嘛转换成php呢
      

  2.   


    echo "<script type='text/javascript'>";
    就这样一直往下写就成PHP了
      

  3.   

    分析 $_SERVER['HTTP_USER_AGENT']
    可用正则,表达式与js的相同
    由于我没有那么多浏览器去测试,代码就略去了
      

  4.   

    <pre>
    <?php
    $ua = $_SERVER['HTTP_USER_AGENT'];
    $arr_sys = array('msie ' => 'IE',
    'firefox/' => 'Firefox',
    'chrome/' => 'Chrome',
    'opera.' => 'Opera',
    'version/' => 'Safari',
    'maxthon ' => 'Maxthon'
    );
    preg_match_all("@(".implode('|',array_keys($arr_sys)).")([\d\.]+)@i",$ua,$out);
    if (!$out[1]){
    echo "无法判断的浏览器版本\n";
    } else {
    foreach ($out[1] as $k => $v){
    echo $arr_sys[strtolower($v)].': '.$out[2][$k]."\n";
    }
    }
    ?>
    </pre>
    IE和Firefox测了一下是可以的。
      

  5.   

    get_browser函数应该更方便些。
      

  6.   

    get_browser(null, true);
    输出的结果更丰富些
      

  7.   

    <?php
    echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";$browser = get_browser(null, true);
    print_r($browser);
    ?>
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3Array
    (
        [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
        [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
        [parent] => Firefox 0.9
        [platform] => WinXP
        [browser] => Firefox
        [version] => 0.9
        [majorver] => 0
        [minorver] => 9
        [cssversion] => 2
        [frames] => 1
        [iframes] => 1
        [tables] => 1
        [cookies] => 1
        [backgroundsounds] =>
        [vbscript] =>
        [javascript] => 1
        [javaapplets] => 1
        [activexcontrols] =>
        [cdf] =>
        [aol] =>
        [beta] => 1
        [win16] =>
        [crawler] =>
        [stripper] =>
        [wap] =>
        [netclr] =>
    )
      

  8.   

    get_browser确是不错,但是需要配置 browscap.ini,不是默认打开的,而且也有文件版本限制。
      

  9.   

    呵呵,也建议使用$_SERVER['HTTP_USER_AGENT'];