mvc封装(三)路由类

来源:互联网 发布:win7桌面网络 编辑:程序博客网 时间:2024/05/17 14:25

首先调用路由类

 $route = new \core\lib\route();   //  引入路由类来触发spl_autoload_register  使访问的地址为xxx.com.index/index           p($route);
接下来在路由类route.php中,直接上代码

<?php namespace core\lib;use core\lib\conf;    //路由文件    class route    {           public $ctrl;        //控制器           public $action;      //方法           public function __construct()           {            // p('ol');                //xxx.com/index/index                //xxx.com/index.php/index/index                /**                 * 1.隐藏index.php                 * 2.获取URL参数部分                 * 3.返回对应控制器方法                 */                // p($_SERVER);                if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '/'){                    //  index/index                $path = $_SERVER['REQUEST_URI'];                 $patharr = explode('/',trim($path,'/'));                // p($patharr);            if(isset($patharr[0])){           //只输入一个index说明控制器有了                                $this->ctrl = $patharr[0];                    }                    unset($patharr[0]);                   //卸载控制器方法                    if(isset($patharr[1])){                         $this->action = $patharr[1];                          unset($patharr[1]);                    } else {                        $this->action = 'index';                    }                     // p($patharr);                    //url多余部分转换成GET                    //index/index/id/1/test/2/ij/2                    $count = count($patharr)+2;                    // p($count);                    $i = 2;                               //i=2开始                    while ( $i < $count) {                        if(isset($patharr[$i+1])){             //如果参数为奇数,报参数越界的错误,进行if判断                         $_GET[$patharr[$i]] = $patharr[$i+1];                        }                         $i = $i + 2;                     }                    p($_GET);                                } else {                    $this->ctrl = 'index';                    $this->action = 'index';                }           }    }?>
p($_GET)效果

这样就增加了路由更多功能


0 0