Browscap provides an improved version of PHP's get_browser() function.
The get_browser() function can be used to tell what a visitor's browser is capable of. Unfortunately, the version provided by PHP has a number of limitations, namely:
- It can be difficult or impossible to configure for shared hosting environments.
- The data used to identify browsers and determine their capabilities requires consistent maintenance to keep up-to-date.
Browscap automates maintenance by storing browser data in a database and automatically retrieving the latest data on a configurable schedule.
Browscap also provides statistics on visiting browsers.
Browscap requires that your server be able to "phone out" (make a http request) to retrieve and update its user agent database.
Note: Some hosting companies have this capability blocked.
Browscap can be installed via the standard Drupal installation process.
Modules can make use of browscap data by calling browscap_get_browser() anywhere they would otherwise call the PHP get_browser() function.
Note: browser_name_regex is not returned.
A number of modules and themes integrate with Browscap, including:
- Mobile Tools uses Browscap to get data about whether a visitor is on a mobile device.
- Switchtheme uses Browscap to switch the site theme based on the user agent of a visitor.
- Mobile Switch provides a simple automatic theme switch functionality for mobile devices, detected by browscap.
Page layout configuration
- Browscap Block allows blocks to be shown or hidden depending on if the site visitor is using a desktop or mobile browser.
- Browscap CTools allows panel panes to be shown or hidden depending on if the site visitor is using a desktop or mobile browser.
- AdaptiveTheme integrates with Browscap to allow regions to be unset or blocks to change regions when the theme is viewed on a mobile device.
A special thanks goes out to Gary Keith who provides regular updates to the browscap user agent database, and specifically for adding a non-zipped CSV version of browscap to support this module.