Motto: "Every business should have a mobile detection script to detect mobile readers."
Mobile_Detect is a lightweight PHP class for detecting mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.
You may consider this script as being part of the RESS (Responsive Web Design with Server-Side Component) movement. You can find out more on the topic by reading these articles: Improve Mobile Support With Server-Side-Enhanced Responsive Design and RESS: Responsive Design + Server Side Components.
Related presentations: Creating mobile apps with PHP & Symfony2 (2013), Responsive Design (2013)
http://is.gd/mobiletest (redirects to demo.mobiledetect.net) - Point your device browser to this URL.
The script is as reliable as Server-Side detection can be. This is not a replacement for Responsive Web Design (media queries) or other forms of Client-Side detection. Read W3C's Mobile Web Application Best Practices Prefer Server-Side Detection Where Possible section. We're running automated tests to make sure the we don't break the detection every time we update it with new devices and also to avoid regex collisions.
The script is updated on daily and weekly basis, so make sure you keep following the updates! Sometimes is hard to distinguish between a phone and a tablet, this is why we're constantly researching a lot of mobile vendors sites, checking product codes and new releases.
Latest releases, Latest dev branch, composer package
I'm currently paying for hosting and spend a lot of my family time to maintain the project and planning the future releases. I would highly appreciate any money donations that will keep the research going.
Sponsored by the community and by BrowserStack - the complete browser coverage tool (including mobile devices) for testing you web application. Special thanks to Dragos Gavrila who contributed with the logo.
2.9.9 version |
Work scheduled on the 2.x.x branch (currently in production).
|
3.0.0 version | Work scheduled on the 3.x.x branch. The new 3.0.0 version will feature: compatibility with 2.x , array with devices details (including model name), device/os/browser version, browser grading utility, separate JSON regex. |
The first version of the script was developed by Victor Stanciu in 2010. In December 2011, Serban Ghita updated the first version and fixed all the bugs, then launched the 2.0 version which marks a new mindset and also featuring tablet detection.
Throughout 2012, the script has been updated constantly and we have received tons of feedback and requests. In July 2012 we moved from Google Code to GitHub.com in order to quickly accommodate the frequent updates and to involve more people.
<?php
// Include and instantiate the class.
require_once 'Mobile_Detect.php';
$detect = new Mobile_Detect;
// Any mobile device (phones or tablets).
if ( $detect->isMobile() ) {
}
// Any tablet device.
if( $detect->isTablet() ){
}
// Exclude tablets.
if( $detect->isMobile() && !$detect->isTablet() ){
}
// Check for a specific platform with the help of the magic methods:
if( $detect->isiOS() ){
}
if( $detect->isAndroidOS() ){
}
// Alternative method is() for checking specific properties.
// WARNING: this method is in BETA, some keyword properties will change in the future.
$detect->is('Chrome')
$detect->is('iOS')
$detect->is('UC Browser')
// [...]
// Batch mode using setUserAgent():
$userAgents = array(
'Mozilla/5.0 (Linux; Android 4.0.4; Desire HD Build/IMM76D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19',
'BlackBerry7100i/4.1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 VendorID/103',
// [...]
);
foreach($userAgents as $userAgent){
$detect->setUserAgent($userAgent);
$isMobile = $detect->isMobile();
$isTablet = $detect->isTablet();
// Use the force however you want.
}
// Get the version() of components.
// WARNING: this method is in BETA, some keyword properties will change in the future.
$detect->version('iPad'); // 4.3 (float)
$detect->version('iPhone') // 3.1 (float)
$detect->version('Android'); // 2.1 (float)
$detect->version('Opera Mini'); // 5.0 (float)
// [...]
3rd party modules / [Submit new](https://github.com/serbanghita/Mobile-Detect/issues/new?title=New%203rd%20party%20module&body=Name, Link and Description of the module.)
Wordpress |
Wordpress Mobile Detect - Gives you the ability to wrap that infographic in a [notdevice][/notdevice] shortcode so at the server level
|
Drupal |
Drupal Mobile Switch - The Mobile Switch
|
Joomla | yagendoo Joomla! Mobile Detection Plugin - Lightweight PHP plugin for Joomla! that detects a mobile browser using the Mobile Detect class. Made by yagendoo media. |
Magento | Magento - This |
PrestaShop | Free, secure and open source shopping cart platform. Included in the distribution since 1.5.x. |
Zend Framework | ZF2 Mobile-Detect - Zend Framework 2 module that provides Mobile-Detect features (Mobile_Detect class as a service, helper for views and plugin controllers). Made by neilime |
Symfony | Symfony2 Mobile Detect Bundle - The bundle for detecting mobile devices, manage mobile view and redirect to the mobile and tablet version. Made by Nikolay Ivlev. Silex Mobile Detect Service Provider - |
ExpressionEngine | EE2 Detect Mobile - Lightweight PHP plugin for |
Yii Framework | Yii Extension - Mobile detect plugin for Yii framework. Made by Alexey Salnikov. |
CakePHP | CakePHP MobileDetect - |
FuelPHP | Special Agent is a FuelPHP package which uses php-mobile-detect to determine whether a device is mobile or not. It overrides the Fuelphp Agent class its methods. Made by Robbie Bardjin. |
Statamic | Statamic CMS Mobile Detect - |
python | pymobiledetect - Mobile detect |
MemHT |
|
concrete5 |
|
engine7 | ExEngine 7 PHP Open Source Framework. The Mobile_Detect class is included in the engine. |
Zikula | Zikula is a free and open-source Content Management Framework, which allows you to run impressive websites and build powerful online applications. The core uses Mobile-Detect to switch to a special Mobile theme, using jQueryMobile |