当然有!下面是一个简单的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框架中的路由系统。