php 判斷移動設備瀏覽器的方法

第一種辦法:

/**
 * 檢查是否是以手機瀏覽器進入(IN_MOBILE)
 */
function isMobile() {
    $mobile = array();
    static $mobilebrowser_list ='Mobile|iPhone|Android|WAP|NetFront|JAVA|OperasMini|UCWEB|WindowssCE|Symbian|Series|webOS|SonyEricsson|Sony|BlackBerry|Cellphone|dopod|Nokia|samsung|PalmSource|Xphone|Xda|Smartphone|PIEPlus|MEIZU|MIDP|CLDC';
    //note 獲取手機瀏覽器
    if(preg_match("/$mobilebrowser_list/i", $_SERVER['HTTP_USER_AGENT'], $mobile)) {
        return true;
    }else{
        if(preg_match('/(mozilla|chrome|safari|opera|m3gate|winwap|openwave)/i', $_SERVER['HTTP_USER_AGENT'])) {
            return false;
        }else{
            if($_GET['mobile'] === 'yes') {
                return true;
            }else{
                return false;
            }
        }
    }
}

 

第二種方法:使用 PHP 內置函數 get_browser() 判斷是否是移動瀏覽器

get_browser — 獲取瀏覽器具有的功能。該函數通過查找 browscap.ini 文件中的瀏覽器信息,嘗試檢測用戶的瀏覽器所具有的功能。

由於許可證的問題,PHP 未提供瀏覽器功能文件,可以從 Browscap 得到瀏覽器功能文件,可以在 http://browscap.org/ 下載 php_browscap.ini 文件。

下載之後,需要在 php.ini 中設置(Win 下):

browscap=D:\wamp\bin\php\php5.5.12\browscap.ini

或者(Linux下)

browscap=/usr/local/php/lib/php/browscap.ini

然後重啓服務,此時可以在 php 文件中打印出 get_browser()

var_dump(get_browser());

輸出結果爲:

object(stdClass)#1 (15) {
  ["browser_name_regex"]=>
  string(101) "~^mozilla/5\.0 \(.*windows nt 10\.0.*\) applewebkit/.* \(khtml, like gecko\) chrome/49\..*safari/.*$~"
  ["browser_name_pattern"]=>
  string(85) "Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko) Chrome/49.*Safari/*"
  ["parent"]=>
  string(11) "Chrome 49.0"
  ["platform"]=>
  string(5) "Win10"
  ["comment"]=>
  string(11) "Chrome 49.0"
  ["browser"]=>
  string(6) "Chrome"
  ["browser_maker"]=>
  string(10) "Google Inc"
  ["version"]=>
  string(4) "49.0"
  ["majorver"]=>
  string(2) "49"
  ["device_type"]=>
  string(7) "Desktop"
  ["device_pointing_method"]=>
  string(5) "mouse"
  ["minorver"]=>
  string(1) "0"
  ["ismobiledevice"]=>
  string(0) ""
  ["istablet"]=>
  string(0) ""
  ["crawler"]=>
  string(0) ""
}

 

 

調用結果:

<?php

$ismobiledevice = get_browser()->ismobiledevice;
if($ismobiledevice) {
    //移動端設備
} else {
    //PC端
}

 

 

 

 

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