Posted in PHP onApril 13, 2011
类代码:
<?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); //在这里可以看到各元素 ?>
php编写一个简单的路由类
声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@