mvc-路由类

在core目录下创建lib目录,创建route.php文件,此时应注意命名空间为:namespace core\lib;


正常情况下我们访问的网址是 xxx.com/index.php/index/index

这里呢我们要做的有三件事:

1.为了url更加美观,我们要隐藏index.php部分

   首先需要在根目录下创建.htaccess文件,写我们的重定向规则:

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

    主要作用呢就是当有url地址提交来,就让它映射到index.php。

    我们可以通过var_dump($_SERVER);来查看我们的路径  [REQUEST_URI];

2.获取URL参数部分

3.返回对应控制器和方法

<?php
namespace core\lib;
class route
{   
	public $controller;
	public $action;
	public function __construct()
	{
		/**
		 * 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])){
				 	unset($patharr[0]);
				 }
				if(isset($patharr[1])){
					$this->controller = $patharr[1];
				}
				unset($patharr[1]);
				if(isset($patharr[2])){
					$this->action = $patharr[2];
					unset($patharr[2]);
				}
				else
				{
					$this->action = 'index';
				}
				//p($patharr);
				//url 多余部分转化成 GET
				//id/1/str/2/test/3
				$count = count($patharr) + 3;
				$i = 3;
				while($i < $count){
					if(isset($patharr[$i + 1])){
						$_GET[$patharr[$i]] = $patharr[$i + 1];	
					}
					$i =$i + 2;
				}
				//p($_GET);
			}else{
				$this->controller = 'index';
				$this->action = 'index';
			}
	
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值