分享一个php检测移动设备的类Mobile Detect

时间:2016-06-21
在php开发过程中,我们可能需要使用php来判断用户使用的什么设备(手机mobile、ipad平板、pc电脑)访问网站的,这个时候我们可以使用一个轻量级的PHP类(Mobile Detect)来完成。下面我们来介绍一下这个php类:

Mobile Detect是检测移动设备(包括平板电脑)一个轻量级的PHP类。它使用的User-Agent字符串与特定的HTTP标头组合,以检测移动环境。

您可以考虑这个脚本是RESS(与服务器端组件响应网页设计)的一部分。通过阅读这些文章,你可以学到更多关于响应式的知识:

  1. 提高移动支持与增强服务器端响应式设计
  2. RESS:响应式设计+服务器端组件

Mobile Detect下载地址:https://github.com/serbanghita/Mobile-Detect/archive/2.8.22.zip

Mobile Detect演示地址:http://demo.mobiledetect.net/

下面是Mobile Detect使用方法示例:

// 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)
// [...]