类代码:
代码如下:
- <?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); //在这里可以看到各元素
- ?>
复制代码
|