php resetfull,让CodeIgniter 直接支持RestFull 的修改方法

修改文件 /system/core/Router.php 的方法 _parse_route()

/**

* Parse Routes

*

* This function matches any routes that may exist in

* the config/routes.php file against the URI to

* determine if the class/method need to be remapped.

*

* @accessprivate

* @returnvoid

*/

function _parse_routes()

{

// Turn the segment array into a URI string

$uri = implode('/', $this->uri->segments);

// Is there a literal match? If so we're done

if (isset($this->routes[$uri]))

{

return $this->_set_request(explode('/', $this->routes[$uri]));

}

// Loop through the route array looking for wild-cards

foreach ($this->routes as $key => $val)

{

// Convert wild-cards to RegEx

$key = str_replace(':any', '.+', str_replace(':num', '[0-9]+', $key));

// Does the RegEx match?

if (preg_match('#^'.$key.'$#', $uri))

{

// Do we have a back-reference?

if (strpos($val, '$') !== FALSE AND strpos($key, '(') !== FALSE)

{

$val = preg_replace('#^'.$key.'$#', $val, $uri);

}

return $this->_set_request(explode('/', $val));

}

}

// If we got this far it means we didn't encounter a

// matching route so we'll set the site default route

$this->_set_request($this->uri->segments);

}

使用方法:修改路由文件 /application/config/routes.php

$routes['index'] = array(

'get'=>'news/lst',

'post'=>'news/lst',

'put'=>'news/lst',

);

by default7#zbphp.com

特别备注,从官网和中文CI网站下载来的CI 2.2 /2.1 包括从github官网下载来的CI,都是没有这一段的。

原文:http://blog.csdn.net/default7/article/details/38270713

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值