一個改變url格式的類

class Prourl {
        /**
         * URL路由,轉爲PATHINFO的格式
         */ 
        static function parseUrl(){
            if (isset($_SERVER['PATH_INFO'])){
                       //獲取 pathinfo
                $pathinfo = explode('/', trim($_SERVER['PATH_INFO'], "/"));  //使用 / 將當前路徑分割爲數組
            
                       // 獲取 control
                       $_GET['m'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');   //若是第一個參數不爲空則爲第一個,不然跳到index

                       array_shift($pathinfo); //將數組開頭的單元移出數組  array_shift()函數刪除數組中的第一個元素,並返回被刪除元素的值。
                      
                       // 獲取 action
                       $_GET['a'] = (!empty($pathinfo[0]) ? $pathinfo[0] : 'index');
                array_shift($pathinfo); //再將將數組開頭的單元移出數組 

                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);
                }    
            }
        }
    }

複習幾個常見的函數   數組

1. explode(separator,string,limit)       separator 用什麼分割   string  須要分割的字符串  
返回的是一個數組
2.array_shift(array)   刪除數組的第一個元素,而且返回被刪的元素
3.http_build_query      生成urlencode格式
 
這種類的好處就是能夠有利於seo,使爬蟲更加容易識別。
相關文章
相關標籤/搜索