0712-2888027 189-8648-0214
微信公眾號(hào)

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

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

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

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

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


//判斷是否是移動(dòng)端訪問(wèn)
   public function isMobile()
    {
        // 如果有HTTP_X_WAP_PROFILE則一定是移動(dòng)設(shè)備
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
            return TRUE;
        }
        // 如果via信息含有wap則一定是移動(dòng)設(shè)備,部分服務(wù)商會(huì)屏蔽該信息
        if (isset ($_SERVER['HTTP_VIA'])) {
            return stristr($_SERVER['HTTP_VIA'], "wap") ? TRUE : FALSE;// 找不到為flase,否則為T(mén)RUE
        }
        // 判斷手機(jī)發(fā)送的客戶端標(biāo)志,兼容性有待提高
        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中查找手機(jī)瀏覽器的關(guān)鍵字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return TRUE;
            }
        }
        if (isset ($_SERVER['HTTP_ACCEPT'])) { // 協(xié)議法,因?yàn)橛锌赡懿粶?zhǔn)確,放到最后判斷
            // 如果只支持wml并且不支持html那一定是移動(dòng)設(shè)備
            // 如果支持wml和html但是wml在html之前則是移動(dòng)設(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;
    }
 

您可能感興趣的相關(guān)文章:

欄目列表
推薦內(nèi)容
熱點(diǎn)內(nèi)容
展開(kāi)