国产视频appPHP判斷用戶訪問網站的設備是手機端或PC端有很多種的方法,以給用戶展示不同的內容。今天就寫寫幾個平時收集過來的函數,大家自己測試吧。

PHP通過用戶瀏覽器的User-Agent來判斷訪問設備的類型

示例代碼:

<?php
function is_mobile() {
    if (empty($_SERVER['HTTP_USER_AGENT'])) {
            $is_mobile = false;
        } elseif ( strpos($_SERVER['HTTP_USER_AGENT'], 'Mobile') !== false 
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Android') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
            || strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
        $is_mobile = true;
    }else{
        $is_mobile = false;
    }
    return $is_mobile;
}
?>

調用方法:

<?php
if(is_mobile){
    //手機端代碼
}else{
    //PC端代碼
}
?>

国产视频app以上自定義函數是PHP通過獲取用戶瀏覽器User-Agent方法來判斷是手機端還是PC端的,但精確度不是很高。比如有些手機的瀏覽器可以改變瀏覽器的標識來繞過上面的判斷邏輯。

PHP判斷用戶設備,PHP判斷設備類型,PHP判斷是否為手機端,php判斷是否為PC端

$_SERVER['HTTP_X_WAP_PROFILE']

国产视频app手機端的UA信息收集可以利用X-WAP-PROFILE,它里面包含屏幕的大小,屏幕顯示字符個數,廠家、版本、瀏覽器型號等。

国产视频app如果是移動設備,肯定會有‘HTTP_X_WAP_PROFILE’這個標識的,所以我們可以利用PHP來判斷是否存在$_SERVER['HTTP_X_WAP_PROFILE']來確認用戶的訪問設備類型

示例代碼

<?php
if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
    return true;
}
?>

$_SERVER['HTTP_VIA']

国产视频appHTTP_VIA:列出從客戶端到服務器端或者相反方向的響應經過了哪些代理服務器,他們用什么協議發送的請求。當客戶端請求到達第一個代理服務器時,該服務器會在自己發出的請求里面添加 Via 頭部,并填上自己的相關信息,當下一個代理服務器 收到第一個代理服務器的請求時,會在自己發出的請求里面復制前一個代理服務器的請求的Via頭部,并把自己的相關信息加到后面。以此類推,當終端服務器收到最后一個代理服務器的請求時,檢查 Via 頭部。就知道該請求所經過的路由。

国产视频app我們可以利用獲取HTTP_VIA方式來并檢查里面是否含有“wap”字段的形式來判斷是否為手機端

代碼示例:

<?php
if(isset($_SERVER['HTTP_VIA'])){
    return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
}
?>

注意:如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息

擴展:

如果你想讓判斷的精度更高一些,可以把以上的實例代碼組合起來使用

比如:

<?php
function ismobile(){
    if (isset($_SERVER['HTTP_X_WAP_PROFILE'])) {
        return true;
    }
    if(isset($_SERVER['HTTP_VIA'])){
        if($_SERVER['HTTP_VIA'], 'wap')){
            return true;
        }
    }
    //is_mobile() 為第一個示例的函數
    //飛鳥慕魚博客 
    if(is_mobile()){
        return true;
    }
    return false;
}
?>

調用方式

<?php
if(ismobile()){
    //手機端
}else{
    //PC端
}
?>