tp,U函数改造


// URL组装 支持不同模式和路由 2010-2-5 更新
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?'.C('VAR_APP').'='.$app.'&'.C('VAR_MODULE').'='.$mod.'&'.C('VAR_ACTION').'='.$act;

//填充附加参数
if($params){
if(is_array($params)){
$params = http_build_query($params);
}
$site_url .= '&'.$params;
}

//开启路由和Rewrite
if(C('URL_ROUTER_ON')){

//载入路由
$router_ruler = C('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);
}

}
}
}

//输出地址或跳转
if($redirect){
redirect($site_url);
}else{
return $site_url;
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值