PHP构建简易路由器教学_PHP URL路由解析示例

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

PHP构建简易路由器教学_PHP URL路由解析示例-第1张图片-佛山资讯网

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 编码 回调函数 路由器 路由

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~