thinkphp 正则路由

Posted 佰草伐

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了thinkphp 正则路由相关的知识,希望对你有一定的参考价值。

正则路由也就是采用正则表达式定义路由的一种方式,依靠强大的正则表达式,能够定义更灵活的路由规则。

路由表达式支持的正则定义必须以“/”开头,否则就视为规则表达式。也就是说如果采用:

  1. ‘#^blog/(d+)$#‘ => ‘Blog/read/id/:1‘

方式定义的正则表达式不会被支持,而会被认为是规则表达式进行解析,从而无法正确匹配。

下面是一种正确的正则路由定义:

  1. ‘/^new/(d{4})/(d{2})$/‘ => ‘News/achive?year=:1&month=:2‘,

对于正则表达式中的每个变量(即正则规则中的子模式)部分,如果需要在后面的路由地址中引用,可以采用:1、:2这样的方式,序号就是子模式的序号。

正则定义也支持函数过滤处理,例如:

  1. ‘/^new/(d{4})/(d{2})$/‘ => ‘News/achive?year=:1|format_year&month=:2‘,

其中 year=:1|format_year 就表示对匹配到的变量进行format_year函数处理(假设format_year是一个用户自定义函数)。

更多的关于如何定义正则表达式就不在本文的描述范畴了。

 

大理石平台检验标准

 

以上是关于thinkphp 正则路由的主要内容,如果未能解决你的问题,请参考以下文章

thinkphp5.0与thinkphp3.2之间的区别

ThinkPHP URL 路由功能详解与实例

thinkphp3.2路由美化,url简化

thinkphp 闭包支持

ThinkPHP5静态地址路由和动态路由的区别?

ThinkPHP V6.0.7发布——修正版本