路由的写法 一判断

m=admin&a=admin
$_GET["m"]=!empty($_GET['m'])?$_GET['m']:index; 
$_GET["a"]=!empty($_GET['a'])?$_GET['a']:index; 

if($_SERVER["QUERY_STRING"]){  //$_SERVER["QUERY_STRING"]获取?以后的值
	$m=$_GET['m']; 	获取m得方法
	unset($_GET['m']);
	$a=$_GET['a']; 	获取a得方法
	unset($_GET['a']);
	$query=http_bulid_query($_GET);  //重组url 获取 a=admin后边的值 组成s=&2=q
	$uri=$_SERVER['SCRIPT_NAME']."/{$m}/{$a}/".pre_replace(arrary("&","="), "/", $query);
	header("Location:".$url);
}
这样就能输出pathinfo的模式
if(issset($_SERVER['PATH_INFO'])){
	$pathinfo=explode('/',trim($_SERVER['PATH_INFO'],"/")); //分割pathingo成为数组
	
	//获取action
				$_GET['m']=(!empty($pathinfo[0])?$pathinfo[0]:'index');
	//将数组的单元移除数组
				
				
				array_shift($pathinfo);
				$_GET['a']=(!empty($pathinfo[0])?$pathinfo[0]:'index');
				
				for($i=0; $i<count($pathinfo); $i+=2){  //每次加2 计算/$_GET['m']/$_GET['a'] 所以每次加2
					$_GET[$pathinfo[$i]]=$pathinfo[$i+1];
				}
}
路由解析类就是这样写成的 完整的是
<?php
	class Router{
	/*
	 *URL专为PATHINFO格式
	 */
		static function praseurl(){
			if(isset($_SERVER['PATH_INFO'])){
				//获取pathinfo
				$pathinfo=explode('/',trim($_SERVER['PATH_INFO'],"/"));
				
				//获取action
				$_GET['m']=(!empty($pathinfo[0])?$pathinfo[0]:'index');
				
				//将数组的单元移除数组
				
				
				array_shift($pathinfo);
				
				
				$_GET['a']=(!empty($pathinfo[0])?$pathinfo[0]:'index');
				
				for($i=0; $i<count($pathinfo); $i+=2){
					$_GET[$pathinfo[$i]]=$pathinfo[$i+1];
				}
			}else{
				$_GET["m"]= (!empty($_GET['m']) ? $_GET['m']: 'index');    //默认是index模块
				$_GET["a"]= (!empty($_GET['a']) ? $_GET['a'] : 'index');   //默认是index动作
	
				if($_SERVER["QUERY_STRING"]){
					$m=$_GET["m"];
					unset($_GET["m"]);  //去除数组中的m
					$a=$_GET["a"];
					unset($_GET["a"]);  //去除数组中的a
					$query=http_build_query($_GET);   //形成0=foo&1=bar&2=baz&3=boom&cow=milk格式
					//组成新的URL
					$url=$_SERVER["SCRIPT_NAME"]."/{$m}/{$a}/".str_replace(array("&","="), "/", $query);
					header("Location:".$url);
				}
			}
		}
	}
欢迎转载,转载请注明来自微度网络-网络技术中心http://yun.widuu.com

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部