当前位置:K88软件开发文章中心网站服务器框架ThinkPHP → 文章内容

正则路由

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-26 15:32:01

由 AdairSweet 创建, 最后一次修改 2016-02-24 正则路由也就是采用正则表达式定义路由的一种方式,依靠强大的正则表达式,能够定义更灵活的路由规则。路由表达式支持的正则定义必须以“/”开头,否则就视为规则表达式。也就是说如果采用:'#^blog\/(\d+)$#' => 'Blog/read/id/:1'方式定义的正则表达式不会被支持,而会被认为是规则表达式进行解析,从而无法正确匹配。下面是一种正确的正则路由定义:'/^new\/(\d{4})\/(\d{2})$/' => 'News/achive?year=:1&month=:2',对于正则表达式中的每个变量(即正则规则中的子模式)部分,如果需要在后面的路由地址中引用,可以采用:1、:2这样的方式,序号就是子模式的序号。正则定义也支持函数过滤处理,例如:'/^new\/(\d{4})\/(\d{2})$/' => 'News/achive?year=:1|format_year&month=:2',其中 year=:1|format_year 就表示对匹配到的变量进行format_year函数处理(假设format_year是一个用户自定义函数)。更多的关于如何定义正则表达式就不在本文的描述范畴了。

正则路由