Use the object returned by get_browser( ) to determine a browser's capabilities:
$browser = get_browser( ); if ($browser->frames) { // print out a frame-based layout } elseif ($browser->tables) { // print out a table-based layout } else { // print out a boring layout }
The get_browser( ) function examines the environment variable $_ENV['HTTP_USER_AGENT'] (set by the web server) and compares it to browsers listed in an external browser capability file. Due to licensing issues, PHP isn't distributed with a browser capability file. The "Obtaining PHP" section of the PHP FAQ (http://www.php.net/faq.obtaining) lists http://www.cyscape.com/asp/browscap/ and http://www.amrein. com/apps/page.asp?Q=InowDownload as sources for a browser capabilities file, and there is also one at http://asp.net.do/browscap.zip.
Once you download a browser capability file, you need to tell PHP where to find it by setting the browscap configuration directive to the pathname of the file. If you use PHP as a CGI, set the directive in the php.ini file:
browscap=/usr/local/lib/browscap.txt
If you use Apache, you need to set the directive in your Apache configuration file:
php_value browscap "/usr/local/lib/browscap.txt"
Many of the capabilities get_browser( ) finds are shown in Table 8-1. For user-configurable capabilities such as javascript or cookies though, get_browser( ) just tells you if the browser can support those functions. It doesn't tell you if the user has disabled the functions. If JavaScript is turned off in a JavaScript-capable browser or a user refuses to accept cookies when the browser prompts him, get_browser( ) still indicates that the browser supports those functions.
Property |
Description |
---|---|
platform |
Operating system the browser is running on (e.g., Windows, Macintosh, UNIX, Win32, Linux, MacPPC) |
version |
Full browser version (e.g., 5.0, 3.5, 6.0b2) |
majorver |
Major browser version (e.g., 5, 3, 6) |
minorver |
Minor browser version (e.g., 0, 5, 02) |
frames |
1 if the browser supports frames |
tables |
1 if the browser supports tables |
cookies |
1 if the browser supports cookies |
backgroundsounds |
1 if the browser supports background sounds with <embed> or <bgsound> |
vbscript |
1 if the browser supports VBScript |
javascript |
1 if the browser supports JavaScript |
javaapplets |
1 if the browser can run Java applets |
activexcontrols |
1 if the browser can run ActiveX controls |
Documentation on get_browser( ) at http://www.php.net/get-browser.
Copyright © 2003 O'Reilly & Associates. All rights reserved.