get_browser() attempts to
determine the capabilities of the user's browser. This is
done by looking up the browser's information in the browscap.ini file. By default, the
value of HTTP_USER_AGENT is used;
however, you can alter this (i.e., look up another browser's
info) by passing the optional
user_agent parameter to
get_browser().
The information is returned in an object,
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.
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.
The following example shows how one might list all
available information retrieved about the user's browser.
The output of the above script would look something like
this:
Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586) hr / b browser_name_pattern: /b Mozilla/4\.5.* br / b parent: /b Netscape 4.0 br / b platform: /b Linux br / b majorver: /b 4 br / b minorver: /b 5 br / b browser: /b Netscape br / b version: /b 4 br / b frames: /b 1 br / b tables: /b 1 br / b cookies: /b 1 br / b backgroundsounds: /b br / b vbscript: /b br / b javascript: /b 1 br / b javaapplets: /b 1 br / b activexcontrols: /b br / b beta: /b br / b crawler: /b br / b authenticodeupdate: /b br / b msn: /b br / |
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
browscap.ini file here. By default, the browscap directive is
commented out.
注: 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.
注: On versions older than PHP 4.0.6, you will have to pass the user agent in via the optional user_agent parameter if the PHP directive register_globals is off. In this case, you will pass in $HTTP_SERVER_VARS['HTTP_USER_AGENT'].