zoukankan      html  css  js  c++  java
  • 【tp5】ThinkCMF5框架,配置使其支持不同终端PC/WAP/Wechat能加载不同配置和视图

    1、版本 5.0.18

    2、在data/conf/ 新增config.php文件,内容如下:

    <?php
    //ThinkCMF5区别不同客户端加载不同配置文件和模块、视图
    $default_module = 'admin';
    $default_controller = 'Index';
    $default_action = 'index';
    
    if(true===isWeixin()){
        $default_module = 'user';
        $default_controller = 'Login';
        $default_action = 'index';
    }elseif(true===isMobile()){
        $default_module = 'portal';
    }
    
    return [
        // 默认模块名
        'default_module'          => $default_module,
        // 默认控制器名
        'default_controller'      => $default_controller,
        // 默认操作名
        'default_action'          => $default_action,
    ];
    
    //判断是否 微信浏览器
    function isWeixin() {
        if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) {
            return true;
        } else {
            return false;
        }
    }
    //判断是PC还是wap
    function isMobile(){
        if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) return true;
        if(isset ($_SERVER['HTTP_CLIENT']) &&'PhoneClient'==$_SERVER['HTTP_CLIENT']) return true;
        if (isset ($_SERVER['HTTP_VIA'])) return stristr($_SERVER['HTTP_VIA'], 'wap') ? true : false;
        if (isset ($_SERVER['HTTP_USER_AGENT'])) {
            $clientkeywords = array(
                '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','mobile'
            );
            if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT']))) {
                return true;
            }
        }
        if (isset ($_SERVER['HTTP_ACCEPT'])) {
            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;
    }    

    3、效果:

    如果是微信,默认输入ip或者域名,直接绑定到 user/Loing/index 页面

    如果是wap,默认输入ip或者域名,直接绑定到 portal/Index/index 页面

    其他情况,PC/IPAD, 均绑定至 默认的 config页面, admin/Index/index页面

  • 相关阅读:
    负载均衡,分布式,集群的理解,多台服务器代码如何同步
    浅谈控制反转与依赖注入
    Jetbrains系列产品重置试用方法
    讲述一下一个还没毕业的科班程序猿的求职历程
    一个在求职路上挣扎的萌新
    用C#操作文件/文件夹(删除,复制,移动)
    随笔-关于公网IP无法访问服务器的解决办法
    C/s从文件(TXT)中读取数据插入数据库
    Sql Server + ADO.NET
    进程。线程与线程池
  • 原文地址:https://www.cnblogs.com/xuzhengzong/p/9599115.html
Copyright © 2011-2022 走看看