[开发文档]基础函数说明二

继续来说说基础函数,上一篇见:基础函数一

1.先来说说url转换函数:tsUrl

这也是一个使用频率很的函数,为了你能轻松转换链接转换的形式,也推荐使用这个函数。

现在官方提供了7种URL形式,不过如果你是IIS的服务器,只有前两种是可以使用的,其他几种都要自己写规则。


function tsUrl($app,$ac='',$params=array())
APP名:$app,对应action:$ac,和参数数组,参数需要以键值对的形式写。


比如

tsUrl('group','topic',array('topicid'=>1));


米饭在应用的过程中,该函数并不能很好的满足我们的需求,子域名如果都要app名的话太长,而我们弄webApp时,如果名太长对于用户来说是个很大的负担,所以我们子域名APP是用了别名的。


'subdomain'=>array(
	'domain'=>'mifan.us', //域名
	'app'=>array(
		'article'	=>'article',
		'mobile'	=>'m'
	), //开启子域的APP
), 
使用别名的话,这个链接转换函数就满足不了我们的需求了。于是改造了一下这个函数,我们是URL3的形式,以这个为例。
elseif($urlset == 3){
	foreach($params as $k=>$v){
		$str .= '-'.$k.'-'.$v;
	}
	
	if($ac==''){
		$ac='';
	}else{
		if($TS_CF['subdomain'] && array_key_exists($app,$TS_CF['subdomain']['app']) || $TS_CF['appdomain'][$app]){
			$ac=$ac;
		}else{
			$ac='-'.$ac;
		}
	}
	
	$page = strpos($str,'page');
	$anchor = strpos($str,'#l_');
	
	if($page){
		if($TS_CF['subdomain'] && array_key_exists($app,$TS_CF['subdomain']['app']) || $TS_CF['appdomain'][$app]){
			$url = $ac.$str.'.html';
		}else{
			if($anchor){
				$url = $app.$ac.substr($str,0,$anchor).'.html'.substr($str,$anchor);
			}else{
				$url = $app.$ac.$str.'.html';
			}
		}
	}else{
		if($TS_CF['subdomain'] && array_key_exists($app,$TS_CF['subdomain']['app']) || $TS_CF['appdomain'][$app]){
			if($ac||$str){
				$url = $ac.$str.'.html';
			}else{
				$url='';
			}		
		}else{
			$url = $app.$ac.$str.'.html';
		}	
	}
}

判断是否是字域名的方法改为array_key_exists,然不是in_array,

然后组URL也换了个方式

if($TS_CF['subdomain'] && array_key_exists($app,$TS_CF['subdomain']['app'])){
   return 'http://'.$TS_CF['subdomain']['app'][$app].'.'.$TS_CF['subdomain']['domain'].'/'.$url;
}
这就可以满足app子域名使用别名了。

2.reurl和reurlsubdomain

这两个函数是tsUrl的逆过程,也没有参数。一般如果只是简单的二次开发,并不需要改动该函数,你也不需要单独了解这两函数,因为ts在都给我们搞好了。

若你觉得本文对你有帮助,你可以: (任意金额)

2013-12-08 15:55:24 来自:依然大头
倒序阅读

你的回应

意见反馈