我們能透過CSS進行RWD設計,針對不同尺寸的裝置,在版型樣式上進行變化。但有時候我們會需要用PHP針對不同的裝置進行不一樣的程式處理。但是PHP並沒有辦法讀取使用者的螢幕資訊(因為那屬於客戶端資訊),不過我們可以透過不同裝置有不同的HTTP_USER_AGENT這個特性,來判斷是手機、平板還是PC,進而做對應的處理。

判斷使用者裝置(方法一)

直接上代碼,這個方法比較陽春,只能判斷是否為行動裝置。

<?php
//是否為行動裝置
function isMobileCheck(){
    //Detect special conditions devices
    $iPod = stripos($_SERVER['HTTP_USER_AGENT'],"iPod");
    $iPhone = stripos($_SERVER['HTTP_USER_AGENT'],"iPhone");
    $iPad = stripos($_SERVER['HTTP_USER_AGENT'],"iPad");
    if(stripos($_SERVER['HTTP_USER_AGENT'],"Android") && stripos($_SERVER['HTTP_USER_AGENT'],"mobile")){
        $Android = true;
    }else if(stripos($_SERVER['HTTP_USER_AGENT'],"Android")){
        $Android = false;
        $AndroidTablet = true;
    }else{
        $Android = false;
        $AndroidTablet = false;
    }
    $webOS = stripos($_SERVER['HTTP_USER_AGENT'],"webOS");
    $BlackBerry = stripos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
    $RimTablet= stripos($_SERVER['HTTP_USER_AGENT'],"RIM Tablet");
    //do something with this information
    if( $iPod || $iPhone || $iPad || $Android || $AndroidTablet || $webOS || $BlackBerry || $RimTablet){
        return true;
    }else{
        return false;
    }
} 
?>

使用方式

<?php
    if(isMobileCheck()){
        //是行動裝置
    }else{
        //不是行動裝置
    }
?>

判斷使用者裝置(方法二)

在github有好人替我們將它封裝成比較完整的類,可以判斷是否為手機、平板、PC,甚至還可以用來判斷使用的作業系統,裝置的品牌。

專案網址:

https://github.com/serbanghita/Mobile-Detect

使用方式:

可以直接下載引入,或是用composer。

PHP判斷行動裝置安裝方式

操作範例:

https://github.com/serbanghita/Mobile-Detect/wiki/Code-examples

判斷行動裝置範例

線上測試

http://demo.mobiledetect.net/


最後附上這兩種方式的備份Code (有可能會被瀏覽器誤判不安全)

https://drive.google.com/open?id=1EwA441_o1jVvn50ep996dlNj0LgLQqJp


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/device-detect-php