通過http user-agent判斷是否爲手機瀏覽器

我們做Web開發的時候,常常需要判斷用戶是否是使用手機訪問網站,從而決定如何頁面任何展示給用戶,以提高用戶體驗,這時需要用到判斷瀏覽器類型的代碼:

下面PHP函數可以根據http user-agent判斷是否爲手機訪問,如果是則返回true

<?php
/**
* 判斷是否是通過手機訪問
* @return bool 是否是移動設備    
*/
public function isMobile() {
  //判斷手機發送的客戶端標誌
  if(isset($_SERVER['HTTP_USER_AGENT'])) {
    $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
    $clientkeywords = array(
      'nokia', 'sony', 'ericsson', 'mot', 'samsung', 'htc', 'sgh', 'lg', 'sharp', 'sie-'
      ,'philips', 'panasonic', 'alcatel', 'lenovo', 'iphone', 'ipod', 'blackberry', 'meizu', 
      'android', 'netfront', 'symbian', 'ucweb', 'windowsce', 'palm', 'operamini', 
      'operamobi', 'opera mobi', 'openwave', 'nexusone', 'cldc', 'midp', 'wap', 'mobile'
    );
    // 從HTTP_USER_AGENT中查找手機瀏覽器的關鍵字
    if(preg_match("/(".implode('|',$clientkeywords).")/i",$userAgent)&&strpos($userAgent,'ipad') === false)
    {
      return true;
    }
  }
  return false;
}

附:各移動瀏覽器的http user-agent:

一、微信的http user-agent(關鍵詞MicroMessenger)

1. Iphone(蘋果)平臺微信的ucweb的useragent

2. Android(安卓)平臺微信的ucweb的useragent

二、UC瀏覽器的http user-agent(關鍵詞UCWEB)

1. android平臺:
android平臺ucweb急速模式開啓下ucweb瀏覽器useragent:

android平臺ucweb急速模式關閉狀態下的http_user_agent:

2. iPhone 平臺
iPhone 平臺極速模式開啓狀態下ucweb瀏覽器useragent:

iPhone 平臺極速模式關閉狀態下 UA 示例如下:(OBUA 爲自帶瀏覽器 UA)

3. iPad 平臺
ipad平臺下ucweb瀏覽器useragent:

4. windows Phone平臺
WP平臺下ucweb瀏覽器useragent:
WP平臺極速模式開啓狀態下:(以 Nokia 900 爲例)

5. 諾基亞平臺
諾基亞手機Symbian&Java平臺ucweb瀏覽器useragen:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章