PHP头条
热点:

ThinkPHP2.0泛路由使用详解(2.0版本适用)


本部分内容适用于 ThinkPHP V2.0版本,在 3.0
版本中,泛路由已经变更为正则路由。如果您需要了解其他版本的路由,请参考:

ThinkPHP 3.0 正则路由
ThinkPHP 2.1
路由

ThinkPHP URL 泛路由

泛路由指的是对同一个路由名称提供了多个规则的支持,使得 URL
的设置更加灵活。例如:

http://www.phplo.com/index.php/product/123 这样的 URL
地址
实际访问的地址是 http://www.phplo.com/index.php/Products/show/product_id/123


http://www.phplo.com/index.php/product/2010/10 这样的 URL 地址,实际访问的地址是
http://www.phplo.com/index.php/Products/archive/year/2010/month/10

泛路由定义及实例
泛路由语法定义

泛路由规则中需要使用PHP正则表达式来对路由进行匹配,具体语法规则如下:




  1. return array(
  2. // 泛路由
  3. 'RouteName@'=>array(
  4. array('路由匹配正则', '模块名称', '操作名称', '参数定义', '额外参数'),
  5. ),
  6. )

提示

如果您使用的是 ThinkPHP 2.1RC
及更高版本,请同时参阅《ThinkPHP 2.1 版本 URL 路由规则对比 2.0
版本的变更》。
泛路由使用实例

以本文开始的例子为例,泛路由配置如下:




  1. return array(
  2. // 泛路由
  3. 'product@'=>array(
  4. array('/^\/(\d+)$/', 'Products', 'show', 'product_id'),
  5. array('/^\/(\d+)\/(\d+)$/', 'Products', 'archive','year,month'),
  6. ),
  7. )

泛路由规则中,使用正则表达式来匹配 URL
地址中路由名后边的字串,如下红色部分:

http://www.phplo.com/index.php/product/2010/10

其他参数上的使用和常规路由的使用一致。

参考阅读

PHP正则表达式

www.phpzy.comtrue/phpkj/12227.htmlTechArticleThinkPHP2.0泛路由使用详解(2.0版本适用) 本部分内容适用于 ThinkPHP V2.0版本,在 3.0 版本中,泛路由已经变更为正则路由。如果您需要了解其他版本的路由,请参考: ThinkPHP 3.0 正则路由...

相关文章

相关频道:

PHP之友评论

今天推荐