判断接收到的路由 来进行处理
- <?phpnamespace core\lib;class route{ public $ctrl; public $action; public
- function __construct() { /* * 隐藏index.php * 获取url参数部分 *返回对应控制器方法 */ if(isset($_SERVER[
- 'REQUEST_URI']) && $_SERVER[ 'REQUEST_URI'] !='/' ){ $path=$ _SERVER[ 'REQUEST_URI'];
- $patharr=e xplode( '/',trim($path, '/')); if(isset($patharr[0])){ $this->
- ctrl = $patharr[0]; } unset($patharr[0]); if(isset($patharr[1])){ $this->action
- = $patharr[1]; unset($patharr[1]); }else{ $this->action = 'index'; } $count
- = count($patharr) + 2; $i = 2; while($i
- < $count){ if(isset($patharr[$i+1])){ $_GET[$patharr[$i]]=$ patharr[$i+1];
- } $i=$ i+2; } } else { $this->
- ctrl = 'index'; $this->action = 'index'; } }}
最后路由的格式为 index/index/id/3/date/31 格式
通过俩参数去获得 get 的 值
如 id:3 date:31
如果 date 后无值 则跳过循环 得出 id:3
- $route = new\core\lib\route();
- $ctrlClass = $route - >ctrl;
- $action = $route - >action;
- $ctrlfile = APP.'/ctrl/'.$ctrlClass.'Ctrl.php';
- $ctrlClass = '\\'.MODULE.'\ctrl\\'.$ctrlClass.'Ctrl';
- if (is_file($ctrlfile)) {
- include $ctrlfile;
- $ctrl = new $ctrlClass();
- $ctrl - >$action();
- } else {
- throw new\Exception('找不到控制器'.$ctrlClass);
- }
然后得到的数据再去处理
得到对应的控制器 方法 参数
最终得到想要的控制器和方法
就爱阅读 www.92to.com 网友整理上传, 为您提供最全的知识大全, 期待您的分享,转载请注明出处。
来源: