天天看点

php路由器管理源码,php 简单的路由器

php 解析地址

PHP代码<?php

class Router extends Object

{

public $module = 'indexAction'; //缺省控制器类名

public $action = 'index'; //控制器缺省方法

public $r = true; //是否可以自定义

public function path()

{

if ( trim(_URI_,'/') )

{

$url = explode('/', _URI_);

$this->module = $url[1];

$this->action = isset($url[2]) && !empty($url[2]) ? $url[2] : $this->action;

} else {

$this->module = $this->action;

}

if($this->r == false )

{

$made = array(

'module' => $this->module,

'action' => $this->action,

);

return $this->getObject($made , 'webApp');

} else {

return $this->rewrite($this->module, $this->action);

}

}

private function rewrite( $mod , $action )

{

$file = $this->route();

require $file;

$url = '/'.trim( _URI_ ,'/').'/';

if( isset($rules) )

{

foreach ($rules as $key => $val)

{

if(preg_match($val[0], $url) )

{

$mod = isset($val[1]['mod']) ? $val[1]['mod'] : $mod;

$action = isset($val[1]['action']) ? $val[1]['action'] : $action;

}

foreach ( $val[2] as $key => $value )

{

if ( !(strpos($value, '#') === FALSE) )

{

preg_match("$value", $url, $result);

$param[$key] = isset($result[1]) ? $result[1] : '';

} else {

$param[$key] = $value;

}

}

}

}

$made = array(

'module' => $mod,

'action' => $action,

'param' => $param

);

return $this->getObject($made , 'webApp');

}

}

本文原创发布php中文网,转载请注明出处,感谢您的尊重!