(PHP 4, PHP 5, PHP 7, PHP 8)
get_browser — Tells what the user's browser is capable of
Attempts to determine the capabilities of the user's browser, by looking up the browser's information in the browscap.ini file.
user_agentThe User Agent to be analyzed. By default, the value of HTTP User-Agent header is used; however, you can alter this (i.e., look up another browser's info) by passing this parameter.
       You can bypass this parameter with a null value.
      
return_array
       If set to true, this function will return an array
       instead of an object.
      
   The information is returned in an object or an array which will contain
   various data elements representing, for instance, the browser's major and
   minor version numbers and ID string; true/false values for features
   such as frames, JavaScript, and cookies; and so forth.
  
   The cookies value simply means that the browser
   itself is capable of accepting cookies and does not mean the user has
   enabled the browser to accept cookies or not. The only way to test if
   cookies are accepted is to set one with setcookie(),
   reload, and check for the value.
  
    Returns false when no information can be retrieved, such as when the
    browscap configuration setting in 
    php.ini has not been set.
  
Example #1 Listing all information about the users browser
<?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] =>
)
Note:
In order for this to work, your browscap configuration setting in php.ini must point to the correct location of the browscap.ini file on your system.
browscap.ini is not bundled with PHP, but you may find an up-to-date » php_browscap.ini file here.
While browscap.ini contains information on many browsers, it relies on user updates to keep the database current. The format of the file is fairly self-explanatory.