8.8.1 Problem
8.8.2 Solution
$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
}
8.8.3 Discussion
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
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
|