在PHP中,可以使用內(nèi)置的$_SERVER['REQUEST_URI']
變量來獲取當(dāng)前請求的URI,然后根據(jù)URI來路由到相應(yīng)的控制器和方法。下面是一個簡單的PHP路由配置示例:
<?php
// 路由配置
$routes = [
'/' => 'HomeController@index',
'/about' => 'AboutController@index',
'/contact' => 'ContactController@index',
];
// 獲取請求URI
$requestUri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
// 處理路由
function handleRoute($requestUri, $routes) {
foreach ($routes as $route => $handler) {
// 使用正則表達(dá)式匹配路由
if (preg_match('#^' . preg_quote($route, '/') . '$#', $requestUri)) {
// 分離控制器和方法
list($controller, $method) = explode('@', $handler);
// 實例化控制器并調(diào)用方法
$controllerInstance = new $controller();
$controllerInstance->$method();
// 結(jié)束處理
exit;
}
}
// 如果找不到匹配的路由,顯示404頁面
echo '404 Not Found';
}
// 處理路由請求
handleRoute($requestUri, $routes);
在這個示例中,我們定義了一個$routes
數(shù)組來存儲路由配置,其中鍵是URI路徑,值是對應(yīng)的控制器和方法。然后,我們定義了一個handleRoute
函數(shù)來處理路由請求。在這個函數(shù)中,我們遍歷$routes
數(shù)組,使用正則表達(dá)式匹配請求URI,然后實例化控制器并調(diào)用相應(yīng)的方法。最后,我們調(diào)用handleRoute
函數(shù)來處理路由請求。
需要注意的是,這個示例僅用于演示目的,實際項目中通常會使用更復(fù)雜的路由配置和解析方式,例如使用第三方路由庫(如Laravel的路由系統(tǒng))或基于PHP框架的路由系統(tǒng)。