mvc之路由

一、完成路由类

      1)创建一个存放其他类的文件夹将我们创建好的类存放进去 然后将调用这个类的路径进行修改

      2)当我们的网址是www.xxx.com/index/index是我们想要将他访问的路径改为index控制器以及index方法,实际我们访问的是 www.xxx.com/index.php/index/index

      3) 首先我们要隐藏index.php,  获取路径的参数部分  返回相应的控制器与方法名

      4)我们要在根目录下创建一个.htaccess的文件  内容如下:

     <IfModule mod_rewrite.c>
      RewriteEngine on
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    </IfModule>

   5)我们可以打印$_SERVER的变量看一下里面是否有我们想要获得的值 ,我们须要的是它里面url路径值,将这条值区出来有的路径名不同有REQUEST_URL还有REDIRECT_URL变量,当我们网址后面没有参数变量后面是‘/’或是没有参数是我们给他一个判断如果为空时我们给他一个提示,否则我们定义一个变量将REQUEST_URL里面的值获取出来 ,将这个值用explode()分隔符分割我们的字符串;

  6)将url里面的多余部分转化成get 将上面的用完的key值进行销毁,然后进行循环例如:

我的默认控制器与方法都是index/index

以下为源码

if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '/') {
            $path = $_SERVER['REQUEST_URI'];
            $patharray = explode('/',trim($path,'/'));
            if (isset($patharray[0])) {
                $this->controller = $patharray[0];
            }
            unset($patharray[0]);
            if (isset($patharray[1])) {
                $this->action = $patharray[1];
                unset($patharray[1]);
            } else {
                $this->action = 'index';
            }
            $count = count($patharray) + 2; //定义2是因为我把前面的index/index删除后 key从2开始的 所以长度也得加2
            $i = 2;
            while ($i < $count) {
                if (isset($patharray[$i + 1])) {
                $_GET[$patharray[$i]] = $patharray[$i + 1];
                }
                $i = $i + 2;
            }
            p($_GET);
        } else  {
            $this->controller = 'index';
            $this->action = 'index';
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值