PHP无内置路由,但可用几行代码实现基础URL路由分发;核心是将请求路径映射到处理函数,步骤为获取路径、匹配规则、执行逻辑,并支持静态与正则路径及参数传递。

PHP本身没有内置的路由系统,但用几行代码就能实现基础的URL路由分发,适合小型项目或学习原理。
理解路由的核心逻辑
路由本质是把用户请求的URL路径,映射到对应的处理函数或控制器方法。关键步骤就三步:获取当前请求路径、匹配预定义规则、执行对应逻辑。
PHP中常用 $_SERVER['REQUEST_URI'] 获取原始路径(含查询参数),用 parse_url() 提取干净的路径部分即可开始匹配。
手写一个支持GET路由的简易路由器
以下是一个无依赖、可直接运行的示例:
立即学习“PHP免费学习笔记(深入)”;
<?php
// 简易路由表:路径 => 回调函数
$routes = [
'/' => fn() => echo '首页',
'/about' => fn() => echo '关于页面',
'/user/(\d+)' => fn($id) => echo "用户ID:$id",
];
<p>// 获取当前请求路径(去除查询参数)
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);</p><p>// 遍历路由表,尝试正则匹配
foreach ($routes as $pattern => $handler) {
if (preg_match('#^' . $pattern . '$#', $path, $matches)) {
array_shift($matches); // 去掉完整匹配项
call_user_func($handler, ...$matches);
exit;
}
}</p><p>echo '404 - 页面未找到';
?></p>登录后复制
说明:
标签: php apache nginx 编码 回调函数 路由器 路由
还木有评论哦,快来抢沙发吧~