mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 23:22:48 +08:00
更新核心
This commit is contained in:
@@ -13,14 +13,6 @@ namespace think;
|
||||
|
||||
class Url {
|
||||
|
||||
static public function param($num,$default=''){
|
||||
$paths = explode(Config::get('url_pathinfo_depr'),trim($_SERVER['PATH_INFO'],'/'));
|
||||
return isset($paths[$num])?$paths[$num]:$default;
|
||||
}
|
||||
|
||||
static public function route($route){
|
||||
}
|
||||
|
||||
/**
|
||||
* URL组装 支持不同URL模式
|
||||
* @param string $url URL表达式,格式:'[分组/模块/操作#锚点@域名]?参数1=值1&参数2=值2...'
|
||||
@@ -30,6 +22,7 @@ class Url {
|
||||
* @return string
|
||||
*/
|
||||
static public function build($url='',$vars='',$suffix=true,$domain=false) {
|
||||
$config = Config::get();
|
||||
// 解析URL
|
||||
$info = parse_url($url);
|
||||
$url = !empty($info['path'])?$info['path']:ACTION_NAME;
|
||||
@@ -49,10 +42,10 @@ class Url {
|
||||
$domain = $host.(strpos($host,'.')?'':strstr($_SERVER['HTTP_HOST'],'.'));
|
||||
}elseif($domain===true){
|
||||
$domain = $_SERVER['HTTP_HOST'];
|
||||
if(Config::get('app_sub_domain_deplay') ) { // 开启子域名部署
|
||||
if($config['app_sub_domain_deplay'] ) { // 开启子域名部署
|
||||
$domain = $domain=='localhost'?'localhost':'www'.strstr($_SERVER['HTTP_HOST'],'.');
|
||||
// '子域名'=>array('项目[/分组]');
|
||||
foreach (Config::get('app_sub_domain_rules') as $key => $rule) {
|
||||
foreach ($config['app_sub_domain_rules'] as $key => $rule) {
|
||||
if(false === strpos($key,'*') && 0=== strpos($url,$rule[0])) {
|
||||
$domain = $key.strstr($domain,'.'); // 生成对应子域名
|
||||
$url = substr_replace($url,'',0,strlen($rule[0]));
|
||||
@@ -74,7 +67,7 @@ class Url {
|
||||
}
|
||||
|
||||
// URL组装
|
||||
$depr = Config::get('pathinfo_depr');
|
||||
$depr = $config['pathinfo_depr'];
|
||||
if($url) {
|
||||
if(0=== strpos($url,'/')) {// 定义路由
|
||||
$route = true;
|
||||
@@ -90,27 +83,27 @@ class Url {
|
||||
$url = trim($url,$depr);
|
||||
$path = explode($depr,$url);
|
||||
$var = [];
|
||||
$var[Config::get('var_action')] = !empty($path)?array_pop($path):ACTION_NAME;
|
||||
$var[VAR_ACTION] = !empty($path)?array_pop($path):ACTION_NAME;
|
||||
if(!defined('BIND_CONTROLLER')){
|
||||
$var[Config::get('var_controller')] = !empty($path)?array_pop($path):CONTROLLER_NAME;
|
||||
$var[VAR_CONTROLLER] = !empty($path)?array_pop($path):CONTROLLER_NAME;
|
||||
}
|
||||
if(!defined('BIND_MODULE')){
|
||||
$var[Config::get('var_module')] = !empty($path)?array_pop($path):MODULE_NAME;
|
||||
$var[VAR_MODULE] = !empty($path)?array_pop($path):MODULE_NAME;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(Config::get('url_model') == 0) { // 普通模式URL转换
|
||||
$url = Config::get('base_url').'?'.http_build_query(array_reverse($var));
|
||||
if($config['url_model'] == 0) { // 普通模式URL转换
|
||||
$url = $config['base_url'].'?'.http_build_query(array_reverse($var));
|
||||
if(!empty($vars)) {
|
||||
$vars = urldecode(http_build_query($vars));
|
||||
$url .= '&'.$vars;
|
||||
}
|
||||
}else{ // PATHINFO模式或者兼容URL模式
|
||||
if(isset($route)) {
|
||||
$url = Config::get('base_url').'/'.rtrim($url,$depr);
|
||||
$url = $config['base_url'].'/'.rtrim($url,$depr);
|
||||
}else{
|
||||
$url = Config::get('base_url').'/'.implode($depr,array_reverse($var));
|
||||
$url = $config['base_url'].'/'.implode($depr,array_reverse($var));
|
||||
}
|
||||
if(!empty($vars)) { // 添加参数
|
||||
foreach ($vars as $var => $val){
|
||||
@@ -118,7 +111,7 @@ class Url {
|
||||
}
|
||||
}
|
||||
if($suffix) {
|
||||
$suffix = $suffix===true?Config::get('url_html_suffix'):$suffix;
|
||||
$suffix = $suffix===true?$config['url_html_suffix']:$suffix;
|
||||
if($pos = strpos($suffix, '|')){
|
||||
$suffix = substr($suffix, 0, $pos);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user