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

孝感風信網絡科技有限公司微信公眾號

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

laravel框架開發:根據訪問設備匹配pc端或手機端界面

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

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


//判斷是否是移動端訪問
   public function isMobile()
    {
        // 如果有HTTP_X_WAP_PROFILE則一定是移動設備
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
            return TRUE;
        }
        // 如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息
        if (isset ($_SERVER['HTTP_VIA'])) {
            return stristr($_SERVER['HTTP_VIA'], "wap") ? TRUE : FALSE;// 找不到為flase,否則為TRUE
        }
        // 判斷手機發送的客戶端標志,兼容性有待提高
        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中查找手機瀏覽器的關鍵字
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return TRUE;
            }
        }
        if (isset ($_SERVER['HTTP_ACCEPT'])) { // 協議法,因為有可能不準確,放到最后判斷
            // 如果只支持wml并且不支持html那一定是移動設備
            // 如果支持wml和html但是wml在html之前則是移動設備
            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;
    }
 
欄目列表
推薦內容
熱點內容
展開
博公司乐放6fu 北京十一选五前三组 汇添富移动互联股票基金 大冢咲番号 sm鞭打 3d试机号后分析汇总 北京股票配资公司 福彩18选7开奖查询 重庆快乐10分 24小时反恐姬野爱片 河北11选5基本走 股票行情实时查询 m.10jqka.com.cn 球探比分app在线下载 体彩11选5开奖结 辽宁35选7 泷泽萝拉2017作品番号 手游麻将可以作弊吗