php 根路由器,php 简单的路由器

php 解析地址

1.[代码][PHP]代码

/**

* 路由器【核心文件】

* @author hxm

* @version 1.0

* @since 2015.05.04

*/

class Router extends Object

{

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

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

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

/**

* 分解路由规则

*

* @accesspublic

* @returnarray

*/

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);

}

}

/**

* 重新定义框架重写规则

*

* @accessprivate

* @paramstring$mod控制器名

* @paramstring$action请求的操作

* @param string $route 规则文件

* @returnarray

*/

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');

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值