一个路由在不确定长度的情况下,控制器和方法不一定传参进来,可能只有模块,甚至模块都没有,这个时候需要特殊处理一下,默认模块用 index,默认控制器用index,默认方法用 index来处理URL。
<?php /** * 将路由处理为 module/controller/method 格式 * @param string $route [要处理的路由] * @param string $delimiter [处理路由的分隔符] * @return string [返回处理过的路由] */ function handle_url_route($route='',$delimiter='/') { $route_list=array_filter(explode($delimiter,$route));//以斜杠分隔 if(count($route_list)<3) { $route_list=array_merge($route_list,array_fill(0,3-count($route_list),"index"));//如果不够三个补足三个 } $route=implode($delimiter,$route_list);//重新以斜杠拼接 return $route;//返回路由 } echo handle_url_route("")."<br/>";//输出 index/index/index echo handle_url_route("admin/user")."<br/>";//输出 admin/user/index echo handle_url_route("admin/user/add")."<br/>";//输出 admin/user/add ?>
得到结果如图
代码截图