/*
'URL_REWRITE_ON' => false,//是否开启重写,true开启重写,false关闭重写
'URL_MODULE_DEPR' => '/',//模块分隔符,一般不需要修改
'URL_ACTION_DEPR' => '-',//操作分隔符,一般不需要修改
'URL_PARAM_DEPR' => '-',//参数分隔符,一般不需要修改
'URL_HTML_SUFFIX' => '.html',//伪静态后缀设置,例如 .html ,一般不需要修改
'URL_HTTP_HOST' => '', //设置网址域名,cp2.0添加
*/
//网址解析
private function _parseUrl(){
$script_name = $_SERVER["SCRIPT_NAME"];//获取当前文件的路径
$url = $_SERVER["REQUEST_URI"];//获取完整的路径,包含"?"之后的字符串
//去除url包含的当前文件的路径信息
if ( $url && @strpos($url,$script_name,0) !== false ){
$url = substr($url, strlen($script_name));
} else {
$script_name = str_replace(basename($_SERVER["SCRIPT_NAME"]), '', $_SERVER["SCRIPT_NAME"]);
if ( $url && @strpos($url, $script_name, 0) !== false ){
$url = substr($url, strlen($script_name));
}
}
//第一个字符是'/',则去掉
if ($url[0] == '/') {
$url = substr($url, 1);
}
//去除问号后面的查询字符串
if ( $url && false !== ($pos = @strrpos($url, '?')) ) {
$url = substr($url,0,$pos);
}
//去除后缀
if ($url&&($pos = strrpos($url,$this->appConfig['URL_HTML_SUFFIX'])) > 0) {
$url = substr($url,0,$pos);
}
$flag=0;
//获取模块名称
if ( $url && ($pos = @strpos($url, $this->appConfig['URL_MODULE_DEPR'], 1) )>0 ) {
self::$module = substr($url,0,$pos);//模块
$url = substr($url,$pos+1);//除去模块名称,剩下的url字符串
$flag = 1;//标志可以正常查找到模块
} else { //如果找不到模块分隔符,以当前网址为模块名
self::$module = $url;
}
$flag2=0;//用来表示是否需要解析参数
//获取操作方法名称
if($url&&($pos=@strpos($url,$this->appConfig['URL_ACTION_DEPR'],1))>0) {
self::$action = substr($url, 0, $pos);//模块
$url = substr($url, $pos+1);
$flag2 = 1;//表示需要解析参数
} else {
//只有可以正常查找到模块之后,才能把剩余的当作操作来处理
//因为不能找不到模块,已经把剩下的网址当作模块处理了
if($flag){
self::$action=$url;
}
}
//解析参数
if($flag2) {
$param = explode($this->appConfig['URL_PARAM_DEPR'], $url);
$param_count = count($param);
for($i=0; $i<$param_count; $i=$i+2) {
$_GET[$i] = $param[$i];
if(isset($param[$i+1])) {
if( !is_numeric($param[$i]) ){
$_GET[$param[$i]] = $param[$i+1];
}
$_GET[$i+1] = $param[$i+1];
}
}
}
}