|
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); //在这里可以看到各元素 ?>
|
|