【thinkphp3.x】thinkphp3.x中U方法生成url地址

来源:互联网 发布:java还是python 编辑:程序博客网 时间:2024/05/14 05:09
[php] view plaincopy
  1. U方法用于完成对URL地址的组装,特点在于可以自动根据当前的URL模式和设置生成对应的URL地址,格式为:  
  2.   
  3. U('地址','参数','伪静态','是否跳转','显示域名');   
  4.   
  5. 在模板中使用U方法而不是固定写死URL地址的好处在于,一旦你的环境变化或者参数设置改变,你不需要更改模板中的任何代码。  
  6.   
  7. 在模板中的调用格式需要采用 {:U('地址''参数'…)} 的方式  
  8.   
  9. 一、U方法的用法示例:   
  10.   
  11.     U('User/add'// 生成User模块的add操作地址  
  12.   
  13. 也可以支持分组调用:   
  14.   
  15.     U('Home/User/add'// 生成Home分组的User模块的add操作地址  
  16.   
  17.   
  18.   
  19. 当然,也可以只是写操作名,表示调用当前模块的   
  20.   
  21.     U('add'// 生成当前访问模块的add操作地址  
  22.   
  23.   
  24.   
  25. 除了分组、模块和操作名之外,我们也可以传入一些参数:   
  26.   
  27.     U('Blog/read?id=1'// 生成Blog模块的read操作 并且id为1的URL地址  
  28.   
  29. U方法的第二个参数支持传入参数,支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,下面几种方式都是等效的:   
  30.   
  31.     U('Blog/cate',array('cate_id'=>1,'status'=>1))   
  32.     U('Blog/cate','cate_id=1&status=1')   
  33.     U('Blog/cate?cate_id=1&status=1')  
  34.   
  35. 但是不允许使用下面的定义方式来传参数:   
  36.   
  37.     U('Blog/cate/cate_id/1/status/1')  
  38.   
  39.   
  40.   
  41. 根据项目的不同URL设置,同样的U方法调用可以智能地对应产生不同的URL地址效果,例如针对:   
  42.   
  43.     U('Blog/read?id=1')  
  44.   
  45. 这个定义为例。  
  46.   
  47. 如果当前URL设置为普通模式的话,最后生成的URL地址是:   
  48.   
  49.     http://serverName/index.php?m=Blog&a=read&id=1  
  50.   
  51. 如果当前URL设置为PATHINFO模式的话,同样的方法最后生成的URL地址是:   
  52.   
  53.     http://serverName/index.php/Blog/read/id/1  
  54.   
  55. 如果当前URL设置为REWRITE模式的话,同样的方法最后生成的URL地址是:   
  56.   
  57.     http://serverName/Blog/read/id/1  
  58.   
  59. 如果你同时还设置了PATHINFO分隔符的话:   
  60.   
  61.     'URL_PATHINFO_DEPR'=>'_'  
  62.   
  63. 就会生成   
  64.   
  65.     http://serverName/Blog_read_id_1  
  66.   
  67. 如果当前URL设置为REWRITE模式,并且设置了伪静态后缀为html的话,同样的方法最后生成的URL地址是:   
  68.   
  69.     http://serverName/Blog/read/id/1.html  
  70.   
  71. 如果设置了多个伪静态支持,那么会自动取第一个伪静态后缀添加到URL地址后面,当然你也可以手动在U方法里面指定要生成的伪静态后缀,例如:  
  72.   
  73.     U('Blog/read','id=1','xml')  
  74.   
  75. 就会生成   
  76.   
  77.     http://serverName/Blog/read/id/1.xml  
  78.   
  79.   
  80. U方法还可以支持路由,如果我们定义了一个路由规则为:   
  81.   
  82.     'news/:id\d'=>'News/read'  
  83.   
  84. 那么可以使用   
  85.   
  86.     U('/news/1')  
  87.   
  88. 最终生成的URL地址是:   
  89.   
  90.     http://serverName/index.php/news/1  
  91.   
  92.   
  93. 如果你的应用涉及到多个子域名的操作地址,那么也可以在U方法里面指定需要生成地址的域名,例如:   
  94.   
  95.     U('Blog/read@blog.thinkphp.cn','id=1');  
  96.   
  97. @后面传入需要指定的域名即可。  
  98.   
  99.   
  100. 此外,U方法的第5个参数如果设置为true,表示自动识别当前的域名,并且会自动根据子域名部署设置APP_SUB_DOMAIN_DEPLOY和APP_SUB_DOMAIN_RULES自动匹配生成当前地址的子域名。  
  101.   
  102. 如果开启了URL_CASE_INSENSITIVE,则会统一生成小写的URL地址。   
0 0
原创粉丝点击