为了配合所使用的URL模式,我们需要能够动态的根据当前的URL设置生成对应的URL地址,为此,ThinkPHP内置提供了U方法,用于URL的动态生成,可以确保项目在移植过程中不受环境的影响。

定义规则

U方法的定义规则如下(方括号内参数根据实际应用决定):

U(‘地址表达式‘,[‘参数‘],[‘伪静态后缀‘],[‘显示域名‘])

地址表达式

地址表达式的格式定义如下:

[模块/控制器/操作#锚点@域名]?参数1=值1&参数2=值2...

如果不定义模块的话 就表示当前模块名称,下面是一些简单的例子:

U(‘User/add‘)// 生成User控制器的add操作的URL地址

U(‘Blog/read?id=1‘)// 生成Blog控制器的read操作 并且id为1的URL地址

U(‘Admin/User/select‘)// 生成Admin模块的User控制器的select操作的URL地址

参数

U方法的第二个参数支持数组和字符串两种定义方式,如果只是字符串方式的参数可以在第一个参数中定义,例如:

U(‘Blog/cate‘,array(‘cate_id‘=>1,‘status‘=>1))

U(‘Blog/cate‘,‘cate_id=1&status=1‘)

U(‘Blog/cate?cate_id=1&status=1‘)

三种方式是等效的,都是生成Blog控制器的cate操作 并且cate_id为1 status为1的URL地址。

但是不允许使用下面的定义方式来传参数

U(‘Blog/cate/cate_id/1/status/1‘);

伪静态后缀

U函数会自动识别当前配置的伪静态后缀,如果你需要指定后缀生成URL地址的话,可以显式传入,例如:

U(‘Blog/cate‘,‘cate_id=1&status=1‘,‘xml‘);

自动识别

根据项目的不同URL设置,同样的U方法调用可以智能地对应产生不同的URL地址效果,例如针对:

U(‘Blog/read?id=1‘);

这个定义为例。

如果当前URL设置为普通模式的话,最后生成的URL地址是:

http://serverName/index.php?m=Blog&a=read&id=1

如果当前URL设置为PATHINFO模式的话,同样的方法最后生成的URL地址是:

http://serverName/index.php/Home/Blog/read/id/1

如果当前URL设置为REWRITE模式的话,同样的方法最后生成的URL地址是:

http://serverName/Home/Blog/read/id/1

如果当前URL设置为REWRITE模式,并且设置了伪静态后缀为.html的话,同样的方法最后生成的URL地址是:

http://serverName/Home/Blog/read/id/1.html

如果开启了URL_CASE_INSENSITIVE,则会统一生成小写的URL地址。

生成路由地址

U方法还可以支持路由,如果我们定义了一个路由规则为:

‘news/:id\d‘=>‘News/read‘

那么可以使用

U(‘/news/1‘);

最终生成的URL地址是:

http://serverName/index.php/Home/news/1

注意:如果你是在模板文件中直接使用U方法的话,需要采用 {:U(‘参数1‘, ‘参数2‘…)} 的方式,具体参考模板的使用函数内容。

域名支持

如果你的应用涉及到多个子域名的操作地址,那么也可以在U方法里面指定需要生成地址的域名,例如:

U(‘Blog/[email protected]‘,‘id=1‘);

@后面传入需要指定的域名即可。

系统会自动判断当前是否SSL协议,生成https://。

此外,U方法的第4个参数如果设置为true,表示自动识别当前的域名,并且会自动根据子域名部署设置APP_SUB_DOMAIN_DEPLOY和APP_SUB_DOMAIN_RULES自动匹配生成当前地址的子域名。

锚点支持

大理石平台价格表

U函数可以直接生成URL地址中的锚点,例如:

U(‘Blog/read#comment?id=1‘);

生成的URL地址可能是:

http://serverName/index.php/Home/Blog/read/id/1#comment

thinkphp url生成

标签:

php国外地址生成,thinkphp url生成相关推荐

  1. php如何生成伪静态url,thinkphp控制器(三) 伪静态及URL生成

    URL伪静态通常是为了满足更好的SEO效果,ThinkPHP支持伪静态URL设置,可以通过设置URL_HTML_SUFFIX参数随意在URL的最后增加你想要的静态后缀,而不会影响当前操作的正常执行.例 ...

  2. tp中php验证码程序,thinkPHP 验证码生成与验证

    您现在的位置是:网站首页>>PHP>>thinkPHP thinkPHP 验证码生成与验证 发布时间:2018-12-06 13:34:11作者:wangjian浏览量:842 ...

  3. 网易云音乐关键字搜索并生成下载url

    网易云音乐关键字搜索并生成下载url 一.获取搜索的歌单信息 ​ 通过在网易云音乐进行关键字搜索,并通过F12检测,发现网页给网站https://music.163.com/weapi/cloudse ...

  4. url短网址 java_url.cn短网址生成api接口(腾讯短链接url生成)

    分享几个最新的url.cn短网址生成api接口,快速生成url.cn超短链接,接口都可以正常调用,觉得不错可以收藏一下. 请求地址: 使用说明: 将api接口地址中"http://www.b ...

  5. Java实现将文本内容、网址链接url,生成二维码与反解析

    2019独角兽企业重金招聘Python工程师标准>>> Java实现将文本内容.网址链接url,生成二维码与反解析 QR码的"QR"是Quick Response ...

  6. URL生成短链接API接口

    1.前言 URL生成短链接口,可将长链接生成短链,方便分发和推广. 查看接口完整信息:https://www.idmayi.com/doc/detail?id=26 2.接口明细 注意:app_id和 ...

  7. SEO工具搜外七街百度推送+主动ping+url生成工具版

    介绍: 集百度推送接口进行推送.百度主动ping.url自动生成工具为一体的软件,亲测可用! 百度推送:利用百度站长工具接口调用地址,实现主动推送,提高收录. 百度ping:未绑定百度站长工具的朋友可 ...

  8. [转]Laravel 4之URL生成

    Laravel 4之URL生成 http://dingjiannan.com/2013/laravel-url/ 获取当前URL 获取当前URL有两种方式,URL::current()或URL::fu ...

  9. 图形验证码校验php,ThinkPHP实现生成和校验验证码功能

    使用ThinkPHP实现生成/校验验证码功能,供大家参考,具体内容如下 首先了解父类Verity.class.php(ThinkPHP/Library/Think/Verity.class.php)中 ...

最新文章

  1. mysql 树形结构_再读MySQL索引-《高性能MySQL》索引手记
  2. 派生类到基类的转换 和基类到派生类的转换
  3. NLP之TFTS读入数据:TF之TFTS读入时间序列数据的几种方法
  4. do matlab的 while循环_除了Matlab,基本上所有的语言都有do-while语句吧?的相关推荐_ChinaUnix论坛...
  5. java请编写公共类继承抽象类_(Java相关)怎么理解抽象类,继承和接口?
  6. spring配置属性的两种方式
  7. 计算机软件毕业论文教师指导记录,毕业论文导师指导记录【毕业论文指导记录(精选多篇)】...
  8. 海康摄像头配置固定IP
  9. 推荐好用的Linux远程连接工具
  10. oracle混音插件教程,编辑推荐:7款人声混音插件
  11. 三相异步电机----电机公式(三)
  12. Fang Fang HDU - 5455 (思维题)
  13. 7-1 前n项的和1 (10 分)
  14. uniapp带视频和图片的轮播swiper(带全屏播放附源码)
  15. 全国计算机演示文稿,全国计算机统考押题——演示文稿
  16. 华为路由器负载均衡_华为 AR路由 策略路由 多WAN环境下指定出口
  17. c语言和java哪个好学_学java前要学C语言吗?java和C语言哪个好学?
  18. 最近用到的shell命令
  19. Transformer + RL:是强化学习魔高一尺,还是 Transformer 道高一丈? (1)
  20. 使用FFmpeg工具将一个图片和一个音频合成一个视频以及在window系统下使用脚本运行

热门文章

  1. Opencv 学习笔记之——鼠标操作画出感兴趣区域
  2. [云炬创业基础笔记]第二章创业者测试8
  3. 科大星云诗社动态20210411
  4. 科大星云诗社动态20211205
  5. 每天60秒读懂世界20211127
  6. [云炬python3玩转机器学习笔记] 3-8Numpy中的聚合运算
  7. *** FATAL ERROR: too many grib files .. 1st=F:\data\预测数据 2nd=- ***
  8. ajax隐藏button,jquery下的ajax应用-form和button触发
  9. VTK修炼之道75:交互部件_测量类Widget的应用
  10. 三角剖分算法的数学理解