zoukankan      html  css  js  c++  java
  • TP v5中Url Compat模式

    compatible

    对于配置pathinfo的支持,在Nginx作服务器、无数种系统要同时运行的环境,实在是一项很累赘的事情,而又不想很low的多个参数(像m、c、a)构造路由参数,我需要那种不必强制使用pathinfo的还可以伪pathinfo(用一个路由参数如s=/abc/ddd/ddd.html,参数名如route、s、r等)的框架。

    目前TP的v5版本下,仅可支持路由解析时的Compat模式,而不支持路由构建时的Compat模式。

    增加一个配置项URL_MODE,找到构建Url的类 hinkUrl::build方法,在参数组装的部分和脚本名与参数连接处做文章。

    // 参数组装
            if (!empty($vars)) {
                // 添加参数
                if (Config::get('url_common_param')) {
                    $vars = urldecode(http_build_query($vars));
                    $url .= $suffix . ((Config::get('URL_MODE') == static::MODE_COMPAT) ? '&' : '?') . $vars . $anchor;
                } else {
                    $paramType = Config::get('url_param_type');
                    foreach ($vars as $var => $val) {
                        if ('' !== trim($val)) {
                            if ($paramType) {
                                $url .= $depr . urlencode($val);
                            } else {
                                $url .= $depr . $var . $depr . urlencode($val);
                            }
                        }
                    }
                    $url .= $suffix . $anchor;
                }
            } else {
                $url .= $suffix . $anchor;
            }
            // 检测域名
            $domain = self::parseDomain($url, $domain);
            // URL组装
            $path_sep = '/';
            if (Config::get('URL_MODE') == static::MODE_COMPAT) {// 兼容模式判断
                $path_sep = '?' . Config::get('var_pathinfo') . '=';
            }
            $url = $domain . rtrim(self::$root ?: Request::instance()->root(), '/') . $path_sep . ltrim($url, '/');
    
    
  • 相关阅读:
    Unicode与JavaScript详解 [很好的文章转]
    4种方法生成二维码 (js 控制canvas 画出 二维码)
    JQuery-Dialog(弹出窗口,遮蔽窗口)
    JQuery实现可编辑的表格
    7个提高效率的JavaScript调试工具
    jQuery中的编程范式
    10款CSS3按钮
    jQuery(function(){})与(function(){})(jQuery)的区别
    JQuery之ContextMenu(右键菜单)
    糟糕的css用法 1
  • 原文地址:https://www.cnblogs.com/x3d/p/6999901.html
Copyright © 2011-2022 走看看