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;
    }
 
栏目列表
推荐内容
  • php根据当前用户信息时间显示时间状

    php根据当前用户信息时间显示时间状态的代码片段,以下代码为...

  • PHP中require和include路径问题总结

    1 绝对路径、相对路径和未确定路径 相对路径 相对路径指以.开...

  • 使用laravel agent轻松识别客户端信息以

    有很多时候我们需要在laravel中识别系统是安卓还是ios,有时候我...

  • PHP中获取当前页面的完整URL

    javascript实现: top.location.href 顶级窗口的地址 this.location.href 当前...

  • php去掉字符串的最后一个字符

    原字符串1,2,3,4,5,6, 去掉最后一个字符,,最终结果为1,2,3,4,5,6 代...

  • php详解手机注册验证码操作思路与流

    手机注册验证码操作思路与流程 1、前端传入手机号参数并做验...

  • PHP PDO数据库的连接与使用示例代码

    PHP PDO数据库的连接与使用示例代码如下: ?php /* * PDO 数据库的操...

  • Laravel 5.3开发过程中时区的设置

    安装好Laravel 5.3之后,我们需要对时区进行设置,默认为UTC,配...

  • 热点内容
    展开