Any php code to detect the browser with version and operating system?

后端 未结 4 2080
面向向阳花
面向向阳花 2020-12-03 12:13

I tried to search in google but cannot find a complete solution (i only find something detects only the browser\'s type like firefox, opera) .

i want a php class or

相关标签:
4条回答
  • 2020-12-03 12:50

    PHP actually has a native method for detecting browser info, called get-browser

    Directly copied from PHP documentation:

    <?php
    echo $_SERVER['HTTP_USER_AGENT'] . "\n\n";
    
    $browser = get_browser(null, true);
    print_r($browser);
    ?>
    

    The above example will output something similar to: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040803 Firefox/0.9.3

    Array
    (
        [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] =>
    )
    

    0 讨论(0)
  • 2020-12-03 12:55

    a simple way for example:

    function browser() {
        $ua = strtolower($_SERVER['HTTP_USER_AGENT']);
        // you can add different browsers with the same way ..
        if(preg_match('/(chromium)[ \/]([\w.]+)/', $ua))
                $browser = 'chromium';
        elseif(preg_match('/(chrome)[ \/]([\w.]+)/', $ua))
                $browser = 'chrome';
        elseif(preg_match('/(safari)[ \/]([\w.]+)/', $ua))
                $browser = 'safari';
        elseif(preg_match('/(opera)[ \/]([\w.]+)/', $ua))
                $browser = 'opera';
        elseif(preg_match('/(msie)[ \/]([\w.]+)/', $ua))
                $browser = 'msie';
        elseif(preg_match('/(mozilla)[ \/]([\w.]+)/', $ua))
                $browser = 'mozilla';
    
        preg_match('/('.$browser.')[ \/]([\w]+)/', $ua, $version);
    
        return array($browser,$version[2], 'name'=>$browser,'version'=>$version[2]);
    }
    

    its return like

    chromium 15
    chrome 16
    opera 9
    
    0 讨论(0)
  • 2020-12-03 13:02

    I used the techpatterns.com one and they don't always update it and it use procedural code which feel dated...

    The Wolfcast BrowserDetection PHP class is updated and use an Object-Oriented way to do it:

    You use it this way:

    $browser = new BrowserDetection();
    echo 'You are using ', $browser->getBrowser(), ' version ', $browser->getVersion();
    

    Another example:

    $browser = new BrowserDetection();
    if ($browser->getBrowser() == BrowserDetection::BROWSER_FIREFOX && $browser->compareVersions($browser->getVersion(), '5.0.1') !== 1) {
        echo 'You have FireFox version 5.0.1 or greater. ';
    }
    
    0 讨论(0)
  • 2020-12-03 13:03

    get_browser() gives you browser version and operating system

    $browser = get_browser();
    
    foreach ($browser as $name => $value) {
        echo "$name $value\n";
    }
    
    output:
    browser_name_pattern:</b> Mozilla/4\.5.*
    parent: Netscape 4.0
    platform: Linux
    ...
    
    0 讨论(0)
提交回复
热议问题