打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
规则路由

规则表达式

规则表达式通常包含静态地址和动态地址,或者两种地址的结合,例如下面都属于有效的规则表达式:

'my'         => 'Member/myinfo', // 静态地址路由'blog/:id'   => 'Blog/read', // 静态地址和动态地址结合'new/:year/:month/:day'=>'News/read', // 静态地址和动态地址结合':user/:blog_id' =>'Blog/read',// 全动态地址

规则表达式的定义始终以“/”为参数分割符,不受URL_PATHINFO_DEPR设置的影响

每个参数中以“:”开头的参数都表示动态参数,并且会自动对应一个GET参数,例如:id表示该处匹配到的参数可以使用$_GET['id']方式获取,:year、 :month 、:day 则分别对应$_GET['year']、 $_GET['month'] 和 $_GET['day']


数字约束

支持对变量的类型检测,但仅仅支持数字类型的约束定义,例如

'blog/:id\d'=>'Blog/read',

表示只会匹配数字参数,如果你需要更加多的变量类型检测,请使用正则表达式定义来解决。

函数支持

可以支持对路由变量的函数过滤,例如:

'blog/:id\d|md5'=>'Blog/read',

表示对匹配到的id变量进行md5处理,也就是说,实际传入read操作方法的$_GET['id'] 其实是 md5($_GET['id'])

可选定义

支持对路由参数的可选定义,例如:

'blog/:year\d/[:month\d]'=>'Blog/archive',

[:month\d]变量用[ ]包含起来后就表示该变量是路由匹配的可选变量。

以上定义路由规则后,下面的URL访问地址都可以被正确的路由匹配:

http://serverName/index.php/Home/blog/2013http://serverName/index.php/Home/blog/2013/12

采用可选变量定义后,之前需要定义两个或者多个路由规则才能处理的情况可以合并为一个路由规则。

可选参数只能放到路由规则的最后,如果在中间使用了可选参数的话,后面的变量都会变成可选参数。

完全匹配

规则匹配检测的时候只是对URL从头开始匹配,只要URL地址包含了定义的路由规则就会匹配成功,如果希望完全匹配,可以使用$符号,例如:

'new/:cate$'=> 'News/category'

http://serverName/index.php/Home/new/info
















===========================================

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
实用Common Lisp编程——函数
ThinkPHP路由详解
第9章 Sub过程
『C程序设计』读书笔记
数组结构体总结
λ演算是什么 爱问知识人
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服