0712-2888027 189-8648-0214
微信公眾號

孝感風(fēng)信網(wǎng)絡(luò)科技有限公司微信公眾號

當前位置:主頁 > 技術(shù)支持 > PHP > laravel框架開發(fā):根據(jù)訪問設(shè)備匹配pc端或手機端界面

laravel框架開發(fā):根據(jù)訪問設(shè)備匹配pc端或手機端界面

時間:2024-09-19來源:風(fēng)信官網(wǎng) 點擊: 1522次
以下代碼為根據(jù)終端不同的訪問設(shè)備,利用laravel框架的view返回不同的模板,在不改變用戶訪問url情況下,根據(jù)訪問設(shè)備匹配不同的PC端或手機端模板效果。
 
在controller控制器中進行訪問設(shè)置的判斷:
 
$isMobile = $this->isMobile();

if ($isMobile) {
	return view('mobile'); //移動端模板
} else {
	return view('pc'); //PC端模板
}


//判斷是否是移動端訪問
   public function isMobile()
    {
        // 如果有HTTP_X_WAP_PROFILE則一定是移動設(shè)備
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
            return TRUE;
        }
        // 如果via信息含有wap則一定是移動設(shè)備,部分服務(wù)商會屏蔽該信息
        if (isset ($_SERVER['HTTP_VIA'])) {
            return stristr($_SERVER['HTTP_VIA'], "wap") ? TRUE : FALSE;// 找不到為flase,否則為TRUE
        }
        // 判斷手機發(fā)送的客戶端標志,兼容性有待提高
        if (isset ($_SERVER['HTTP_USER_AGENT'])) {
            $clientkeywords = array(
                'mobile',
                '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',
                'openwave',
                'nexusone',
                'cldc',
                'midp',
                'wap'
            );
            // 從HTTP_USER_AGENT中查找手機瀏覽器的關(guān)鍵字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return TRUE;
            }
        }
        if (isset ($_SERVER['HTTP_ACCEPT'])) { // 協(xié)議法,因為有可能不準確,放到最后判斷
            // 如果只支持wml并且不支持html那一定是移動設(shè)備
            // 如果支持wml和html但是wml在html之前則是移動設(shè)備
            if ((strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') !== FALSE) && (strpos($_SERVER['HTTP_ACCEPT'], 'text/html') === FALSE || (strpos($_SERVER['HTTP_ACCEPT'], 'vnd.wap.wml') < strpos($_SERVER['HTTP_ACCEPT'], 'text/html')))) {
                return TRUE;
            }
        }
        return FALSE;
    }
 
欄目列表
推薦內(nèi)容
熱點內(nèi)容
展開