首頁 >後端開發 >PHP問題 >php怎麼判斷打開是手機還是pc

php怎麼判斷打開是手機還是pc

PHPz
PHPz原創
2023-04-21 09:10:193295瀏覽

在現今的行動互聯網時代,優化網站設計來適應不同用戶終端設備的使用已成為必要的任務。因此,如何在PHP中判斷使用者造訪網站時是使用手機還是PC成為了開發人員需要面對的問題之一。本文將介紹一些常見的PHP程式碼,幫助開發人員判斷開啟網站的用戶端是否為手機或PC。

一、透過HTTP_USER_AGENT判斷存取終端

HTTP_USER_AGENT是HTTP協定中的一個頭部信息,在請求頭部中包含了許多的設備識別訊息,可以用來判斷存取終端設備類型。透過分析使用者請求頭中的HTTP_USER_AGENT,可以得到使用者使用的瀏覽器、作業系統、行動裝置等信息,當中也包含了行動裝置或PC裝置的識別資訊。

具體實現如下:

function is_mobile(){
    if (isset($_SERVER['HTTP_USER_AGENT'])) {
        $user_agent = $_SERVER['HTTP_USER_AGENT'];
        $mobile_agents = Array("Android", "iPhone", "iPod", "iPad", "Windows Phone", "BlackBerry", "SymbianOS");
        foreach ($mobile_agents as $mobile_agent) {
            if (strpos($user_agent, $mobile_agent) !== false) {
                return true;
            }
        }
    }
    return false;
}

迭代$mobile_agents數組,可以根據HTTP_USER_AGENT是否包含行動裝置標識來判斷存取終端是否為手機裝置。如果傳回true,則代表使用者使用了行動設備,否則代表使用者使用了PC端設備。

二、透過$_SERVER疑似原始方法判斷存取終端機

除了HTTP_USER_AGENT頭部資訊外,還有另外一種判斷方法,即透過$_SERVER疑似原始方法中HTTP_ACCEPT值來判斷存取終端類型。 HTTP_ACCEPT值是代表使用者瀏覽器所能接受的頁面類型,通常瀏覽器預設會要求接受text/html類型的數據,而行動裝置則要求text/html類型或wap類型的資料格式。

具體實作程式碼如下:

function is_mobile(){
    if (isset($_SERVER['HTTP_ACCEPT'])) {
        $accept = $_SERVER['HTTP_ACCEPT'];
        if (strpos($accept, 'vnd.wap.xhtml+xml') !== false || 
            strpos($accept, 'text/vnd.wap.wml') !== false) {
            return true;
        }
    }
    return false;
}

如果傳回true,則表示使用者使用了行動裝置訪問,否則表示使用者使用了PC端裝置存取。

三、透過行動裝置存取特定的URL路徑

在預設情況下,行動裝置造訪網站時會自動跳轉至行動版本的網頁,而桌面裝置造訪時則會跳前往桌面版本的網頁。開發者可以採用根據URL路徑的差異來處理不同設備的請求。

例如,在URL中加入」/m/」字串,代表造訪的是行動網站的頁面,將內容適配後,依然可以渲染。而來訪URL沒有「/m/」字串,則表示造訪的是PC端頁面。

具體實作程式碼如下:

function is_mobile(){
    if(isset($_SERVER['HTTP_REFERER'])){
        $referer = strtolower($_SERVER['HTTP_REFERER']);
        $mobile_url = strtolower($_SERVER['HTTP_HOST'].'/m/');
        if(strpos($referer, $mobile_url) !== false){
            return true;
        }
    }
    return false;
}

透過檢查$_SERVER['HTTP_REFERER']的值,可以取得使用者從哪個頁面連結進入目前頁面,從而判斷使用者使用的是行動裝置還是PC端設備。

總結

上述三種方法都可以用來判斷使用者終端設備類型,選擇哪一種方式主要取決於應用的實際情況。在實際應用中,我們可以將這些方法應用到不同的場景中,從而為使用者提供更友善的體驗。如果開發者想要開發一個既適配行動設備,又適配PC端的Web應用,那麼使用以上方式,就可以進行輕鬆實現。

以上是php怎麼判斷打開是手機還是pc的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn