function U($url, $params = false, $redirect = false, $suffix = true) { // 普通模式 if (false === strpos($url, '/')) { $url .= '//'; } // 填充默认参数 $urls = explode('/', $url); $app = $urls[0] ? $urls[0] : APP_NAME; $mod = $urls[1] ? $urls[1] : 'Index'; $act = $urls[2] ? $urls[2] : 'index'; // 组合默认路径 $site_url = SITE_URL . '/index.php?app=' . $app . '&mod=' . $mod . '&act=' . $act; // 填充附加参数 if ($params) { if (is_array($params)) { $params = http_build_query($params); $params = urldecode($params); } $params = str_replace('&', '&', $params); $site_url .= '&' . $params; } // 开启路由和Rewrite $_config = getPublicConfig(); if ($_config['URL_ROUTER_ON']) { // 载入路由 static $router_ruler = array(); if (empty($router_ruler)) { $router_ruler = (include SITE_ROOT . '/router.inc.php'); $router_ruler = $router_ruler['router']; } $router_key = $app . '/' . ucfirst($mod) . '/' . $act; //路由命中 if (isset($router_ruler[$router_key])) { //填充路由参数 $site_url = SITE_URL . '/' . $router_ruler[$router_key]; //填充附加参数 if ($params) { // 解析替换URL中的参数 parse_str($params, $r); foreach ($r as $k => $v) { if (strpos($site_url, '[' . $k . ']')) { $site_url = str_replace('[' . $k . ']', $v, $site_url); } else { $lr[$k] = $v; } } // 填充剩余参数 if (is_array($lr) && count($lr) > 0) { $site_url .= '?' . http_build_query($lr); } } // 去除URL中无替换的参数 $site_url = preg_replace('/\\/\\[(.+?)\\]/i', '', $site_url); } } // 输出地址或跳转 if ($redirect) { redirect($site_url); } else { return $site_url; } }
function getDbPrefix() { static $_prefix = ''; if (empty($_prefix)) { $_prefix = getPublicConfig(); $_prefix = $_prefix['DB_PREFIX']; } return $_prefix; }