php编写一个简单的路由类 |
本文标签:路由类 类代码: 复制代码 代码如下: <?php class Router { public function getRouter($types = 1) { if ( isset($_SERVER[PATH_INFO]) ) { $query_string = substr(str_replace(array(.html,.htm, .asp, //), ,$_SERVER[PATH_INFO]),1); } else { $query_string = str_replace($_SERVER[SCRIPT_NAME], ,$_SERVER[PHP_SELF]); } if ( $types == 1 ) { // 第一种类型以/分隔 $temp = explode(/, $query_string); } elseif ($types == 2) { $temp = explode(-, $query_string); } elseif ($types == 3) { return array(Controller=>$_GET[controller]); } if ( empty($temp[0]) ) { return array(Controller => index,Operate => index); } if ( empty($temp[1]) ) { $temp[] = index; } // 去除空项 foreach ($temp as $val) { if ($val) { $url[] = $val; } } list($controller, $operate) = $url; //有参数的情况 $params = array(); if ( count($url)>2 ) { array_shift($url); array_shift($url); $params = $url; } return array( "Controller" => $controller, "Operate" => $operate, "params" => $params, ); } } ?> 调用方法: 复制代码 代码如下: <?php $url = new Router(); $url->getRouter(1); print_r($url); //在这里可以看到各元素 ?> |