php url伪静态化解析
1、大家来说说URL映射吧
? ?一般url映射有两种方式,一种是通过mod_rewrite实现,这种网上教材很多我也不多说了。另外一种是在程序中模拟,比如类似zend Framework中的那种方式/index.php/controller/action/var1/value1/var2/value2/。这里方 式其实最主要是通过一个统一的输入接口,然后对url进行解析,最后转发到相应的controller中的module。
? ? 我这里写了两个简单函数来模拟。
? ? 第一个函数主要是进行地址解析,把类似/index.php/controller/action/var1/value1/var2/value2/的地址解析出来,一般来说要解析成三部分:controller,module,params。
<?phpfunction url_dispatch($router, $app_path = '/app/controllers/') {require_once (SERVER_PATH . '/libs/controller.class.php');$controller = $router ['controller'] . 'Controller';//echo SERVER_PATH.$app_path.$controller.'.class.php';if (! file_exists ( SERVER_PATH . $app_path . $controller . '.class.php' ))die ( '缺少必要的类!' );require_once (SERVER_PATH . $app_path . $controller . '.class.php');$controller = new $controller ();$controller->_setParam ( $router ['params'] );$controller->{$router ['action'] . 'Action'} ();return true;}?>