普通模式
在
ThinkPHP等
架構中,預設的URL格式即為普通模式:
-
index.php?m=子產品名&c=控制器名&a=方法名
pathinfo模式
你可以列印 var_dump($_SERVER);學入了解,什麼是pathinfo。
格式如下:
-
index.php/控制器/方法/參數n/值n
我們來看看普通模式的實作代碼。
-
//假設存在下面兩個類,你可以按照thinkphp的規則寫兩個類玩玩<?php
include 'index.class.php';
include 'user.class.php';// 對使用者請求URL進行處理
$query = $_GET;$controller = isset($query['c']) ? $query['c'] : 'indexController';
$action = isset($query['a']) ? $query['a'] : 'index';
if (class_exists($controller)) {
if (method_exists($controller, $action)) {
unset($_GET['c']);
unset($_GET['a']); // 執行個體化使用者請求類并調用方法
(new $controller())->$action();
} else {
echo '控制器' . $controller . '中不存在方法' . $action;
}
} else {
echo '不存在控制器' . $controller;
}
其中
unset()
掉兩個get參數,隻是為了對真正調用的方法造成其他影響。
而pathinfo,你可以将$_SERVER中的pathinfo資訊得到後,使用http_build_query拼裝好。處理方式與上面處理的方式一樣。