當然有!下面是一個簡單的PHP路由案例,使用了內置的$_SERVER['REQUEST_URI']
變量來解析請求的URI,并根據URI調用相應的控制器方法。
<?php
// 路由定義
$routes = [
'/' => 'HomeController@index',
'/about' => 'AboutController@index',
'/contact' => 'ContactController@index',
];
// 路由解析
$requestUri = $_SERVER['REQUEST_URI'];
$routeFound = false;
$controllerMethod = '';
foreach ($routes as $route => $handler) {
if (strpos($requestUri, $route) === 0) {
$routeFound = true;
list($controller, $method) = explode('@', $handler);
break;
}
}
// 路由處理
if ($routeFound) {
// 調用控制器方法
$controllerInstance = new $controller();
call_user_func_array([$controllerInstance, $method], []);
} else {
// 處理404錯誤
echo '404 Not Found';
}
?>
在這個例子中,我們定義了三個路由:/
、/about
和/contact
,分別對應HomeController
、AboutController
和ContactController
的index
方法。當用戶訪問這些URL時,PHP腳本會解析請求的URI,并根據URI調用相應的控制器方法。
請注意,這個例子僅用于演示目的,實際項目中通常會使用更復雜的路由系統,例如Laravel框架中的路由系統。