php搭建mvc框架三(路由類)
阿新 • • 發佈:2019-01-31
在這裡補充一下:“大家可以先把目錄建一下,”;
首先呢在mvc下面建立.htaccess
內容:
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?$1 [QSA,PT,L] </IfModule> 路由類程式碼如下 在lib資料夾下建立ruote.php檔案
<?php namespace僅供參考core\lib; class route{ public $ctrl; public $action; public function __construct(){ //p($_SERVER); //隱藏index.php //獲取url 引數部分 //返回控制器和方法 // p($_SERVER); // p($_SERVER['REQUEST_URI']); //判斷地址引數 if(isset($_SERVER['REQUEST_URI'])&&$_SERVER['REQUEST_URI'] != '/'){ $path=$_SERVER['REQUEST_URI']; // p($path); $patharr=explode('/',trim($path,'/')); //p($patharr); //p($patharr); //檢測變數,unset是為了得到傳的id 例:http://www.new.com/index/index/id/5 當 例:http://www.new.com/index/index/id/5/6 這種情況下加了if判斷 (while下的if判斷) if(isset($path[0])){ $this->ctrl = $patharr[0]; } unset($patharr[0]); if(isset($path[1])){ $this->action = $patharr[1]; unset($patharr[1]); } else{ $this->action = 'index'; } $count = count($patharr)+2; $i=2; while($i<$count){ if(isset($patharr[$i+1])) { $_GET[$patharr[$i]] = $patharr[$i + 1]; } $i = $i + 2; } // p($patharr); //p($_GET); }else{ $this->ctrl='index'; $this->action='index'; } } }