2012年9月7日星期五

tp的路由器功能1

tp的路由器功能1

ThinkPHP URL 路由功能详解与实例

本文介绍TP路由功能和U方法使用,分为下面几个部分:
1.Tp URL 路由功能详解:
2.TP 正则路由与实例
3.TP U方法:使用U方法自动生成URL超链接

TP3.0版本的路由功能较2.x版本有较大的变更,
1.2.0URL路由
2.TP 泛路由使用详解
3.TP 2.1 路由规则对比2.0变更
4.TP的U方法使用路由功能(bug)与解决方法(2.0版本适用)

TP URL 路由简介
简单的说,URL路由就是允许你在一定规则下定制你需要的URL样子,以达到美化URL,提高用户体验,也有益于搜索收录.

例子:http://www.51idev.com/index.php/Product/Show/category/5/id/23
该URL的本意是显示第五类中id为123的产品.经过URL路由改写为URL可以写为:
http://www.5idev.com/index.php/product/5/123
如果使用.htaccess文件的Rewrite规则把入口文件隐藏,则上面的URL可以进一步简化为:
http://ww.51dev.com/product/5/123
这个URL地址就相对比较简单容易.
当然使用到Apache的URL Rewrite规则也能达到URL定制的功能,在此就不展开了!

TP URL路由配置
在TP中使用URL路由功能,需要如下配置:
在项目配置文件中Conf/config.php里面开启路由功能(设置为true)
'URL_ROUTER_ON' => true,

路由规则定义:
和2.0版本的不同是,3.0的路由规则定义于项目配置文件config.php内,格式为数组格式,具体定义规则为规则路由和正则路由.规则语法如下:
1. '路由规则'=>'[分组/模块/操作]?额外参数1=值1&额外参数2=值2..'
2.'路由规则'=>array['分组/模块/操作]'],'额外参数1=值2&额外参数2=值2...'
3.'路由规则'=>'外部地址'
4.'路由规则'=>array('外部地址','重定向代码')

语法规则:
1.路由规则即是我们要在URL中显示出来规则,后面元素值部分是实际的URL地址以及参数
2.路由规则中如果以:开头,表示动态变量,否则为静态地址
3.格式2的额外参数可以传入数组或者字符集
4.路由规则支持变量的数字约束定义,如'product/:id\d'=>'Product/Show'
5.路由规则非数字变量支持排除,例如'news/cate^add|edit|delete'=>'News/category/'
6.路由规则支持完整匹配定义,例如'product/:id\d$'=>'Product/Show'
7.路由规则中的静态地址不区分大小写
8.外部地址中如果要引用动态变量,采用:1 :2 定义
9.规则路由可以支持 全动态和动静态结合定义 例如':user/blog/:id'=>'Home/Blog/user'

TP URL 路由实例
以本文的例子为首,看该路由是如何定义的.在项目配置文件,Conf/config.php里定义如下规则:
'URL_ROUTE_RULES'=>array(
'product/:category\d:id\d'=>'Product/Show',//规则路由
);


TAG: