路由的写法 一判断
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
发表评论 取消回复