php 路由解析规则

2012-11-01 15:46:29 · 作者: · 浏览: 393

    [php]

    if(isset($_SERVER['PATH_INFO'])){

    //获取路径信息(pathinfo)

    $pathinfo=explode('/',trim($_SERVER['PATH_INFO'],'/'));

    //获取$_GET['m']

    $_GET['m']=(!emptyempty($pathinfo[0])?$pathinfo[0]:'index');

    //将数组单元的开头移除

    array_shift($pathinfo);

    //获取$_GET['a]

    $_GET['a']=(!emptyempty($pathinfo[0])?$pathinfo[0]:'index');

    //将数组单元的开头移除

    array_shift($pathinfo);

    $num=count($pathinfo);

    for ($i=0;$i<$num;$i+=2){

    $_GET[$pathinfo[$i]]=$pathinfo[$i+1];

    }

    }else{

    $_GET['m']=(!emptyempty($_GET['m'])?$_GET['m']:'index');

    $_GET['a']=(!emptyempty($_GET['a'])?$_GET['a']:'index');

    if($_SERVER["QUERY_STRING"]){

    $m=$_GET['m'];

    unset($_GET['m']);   //去除数组的m

    $a=$_GET['a'];

    unset($_GET['a']);   //去除数组的a

    $query=http_build_query($_GET);  //组成新的URL参数

    //组合新的URL

    $url=$_SERVER['SCRIPT_NAME']."/{$m}/{$a}/".str_replace(array("&","="),"/",$query);

    header("Location:".$url);

    }

    }

[1] [2] 下一页