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.
What to do if a browser is not detected properly?
Please file an issue with the browscap data. Of course, you should search for an existing issue first.
Since browscap is a server-side behavior that runs in php it will only alter behavior of your Drupal page if page caching is not active. Page caching can be disabled in the administration area and is inactive for all authenticated users.
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.
- ThemeKey ThemeKey allows you to define simple or sophisticated theme-switching rules which allow automatic selection of a theme depending on current path, taxonomy terms, language, node-type, and many, many other properties.
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.