服務器端如何判斷客戶端是否是手機

最近開發咱們網站的手機版,採用了這樣的模式實現:css

根據客戶端瀏覽器user agent判斷用戶瀏覽器類型,若是用戶使用的是手機訪問,則給用戶展現手機端模板。注意,咱們這裏pc端和手機端採用的是同一套系統,android

好比pc端網站爲http://aaron.com,手機也訪問http://aaron.com,只是跟對瀏覽器類型向客戶端發送不一樣的頁面。web

廢話就到這裏,直接上代碼,此段代碼用來辨別是否是手機端windows

/**
* 判斷是不是經過手機訪問
* @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;
}
相關文章
相關標籤/搜索