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.
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. 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.
We are working on a database and API that will automate this process.
Road to 2.9.9 version - stuff that are scheduled on the 2.x.x
branch (currently in production).
Road to 3.0.0 version - stuff that are scheduled on the 3.x.x
branch.
Current devel
status:
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.
I'm currently paying for hosting and spend a lot of my family time to maintain the project and what is to come. 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.
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.
http://is.gd/mobiletest - point your device browser to this URL.
Include and instantiate the class:
<?php
include 'Mobile_Detect.php';
$detect = new Mobile_Detect();
Basic usage, looking for mobile devices or tablets:
<?php
if ( $detect->isMobile() ) {
// Any mobile device (phones or tablets).
}
<?php
if( $detect->isTablet() ){
// Any tablet device.
}
Check for a specific platform with the help of the magic methods:
<?php
if($detect->isiOS()){
// Code to run for the Apple's iOS platform.
}
<?php
if($detect->isAndroidOS()){
// Code to run for the Google's Android platform.
}
Other case insensitive available methods are isIphone()
, isIpad()
, isBlackBerry()
, isKindle()
, isOpera()
, etc. For the full list of available methods check the demo.php
file.
Alternative method is()
for checking specific properties (in beta):
<?php
$detect->is('Chrome')
$detect->is('iOS')
$detect->is('UC Browser')
[...]
Batch mode using setUserAgent()
:
<?php
$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 (in beta):
<?php
$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)
[...]
<tr>
<td><a href="https://github.com/iamspacehead/responsage">Wordpress Responsage</a></td>
<td>A small <code>WordPress</code> theme plugin that allows you to make your images responsive. Made by <a href="https://github.com/iamspacehead">Adrian Ciaschetti</a>.</td>
<tr>
<td><a href="http://tt-rss.org/redmine/projects/tt-rss/wiki">Tiny Tiny RSS</a></td>
<td>An open source web-based news feed (RSS/Atom) reader and aggregator, designed to allow you to read news from any location, while feeling as close to a real desktop application as possible.</td>
CakePHP | MobileDetect |
Magento | This Magento helper from Optimise Web enables the use of all functions provided by MobileDetect.net. Made by Kathir Vel. |
pymobiledetect | Mobile detect python package . Made by Bas van Oostveen. |
PrestaShop | Free, secure and open source shopping cart platform. Since 1.5.x |
JReviews | Review Script for Joomla , CCK and PHP Directory Script. |
Symfony2 Mobile Detect Bundle | Symfony2 bundle for detect mobile devices, manage mobile view and redirect to the mobile and tablet version. Made by Nikolay Ivlev. |
Silex Mobile Detect Service Provider | Silex service provider to interact with Mobile detect class methods. Made by Lhassan Baazzi. |
ExpressionEngine | Lightweight PHP plugin for EE2 that detects a mobile browser using the Mobile Detect class. Made by Gareth Davies. |
Yii Extension | Mobile detect plugin for Yii framework. Made by Alexey Salnikov. |
Drupal Mobile Switch | The Mobile Switch Drupal module provides a automatic theme switch functionality for mobile devices, detected by Browscap or Mobile Detect. Made by Siegfried Neumann. |
Drupal Mobile Detect | Lightweight mobile detect module for Drupal created by Matthew Donadio |
Drupal Context Mobile Detect | This is a Drupal context module which integrates Context and PHP Mobile Detect library. Created by Artem Shymko. |
Wordpress Mobile Detect | WP Mobile Detect gives you the ability to wrap that infographic in a [notdevice][/notdevice] shortcode so at the server level WordPress will decide to show that content only if the user is NOT on a phone or tablet. Made by Jesse Friedman. |
Social PopUP | This plugin will display a popup or splash screen when a new user visit your site showing a Google+, Twitter and Facebook follow links. It uses Mobile_Detect to detect mobile devices. |
Statamic CMS |
|
MemHT Portal |
|
concrete5 CMS | concrete5 is a CMS that is free and open source. |
bConsole | Creates a panel that sits on top of a browser-based project and provides information about the client machine and browser. |
Is your project using Mobile_Detect
the library? [Let us know](https://github.com/serbanghita/Mobile-Detect/issues/new?title=New%20script%20using%20Mobile_Detect&body=Name and Description of your script.)!