U函数的作用是根据当前的URL设置生成对应的URL地址,使用U函数可以确保项目在移植过程中不受环境的影响。

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

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

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

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

模块/控制器如果与当前模块、控制器相同的话可以省略。

参数值既可以通过'地址表达式'传递也可以通过'参数'传递,而通过'参数'传递时既可以是字符串也可以是数组,所以下面三个URL地址是等效的:

U('blog/read?id=5&stu=0')
U('blog/read','id=5&stu=0')
U('blog/read',array('id=>5','stu=>0'))

但下面的表达式是错误的:

U('blog/read/id/5/stu/0')

另外,U函数会自动识别当前URL模式,并按当前URL模式生成URL地址。

实例与说明

假设当前URL地址是 http://www.bnzoo.com/Home/Index/index,现在要访问 http://www.bnzoo.com/Home/Index/text/id/25/ty/1,U函数表达如下:

//下面三个表达是等效的
U('text?id=25&ty=1')
U('text','id=25&ty=1')
U('text',array('id=>25','ty=>1'))

访问 http://www.bnzoo.com/Home/Form/text/id/25/ty/1,U函数表达如下:

//下面三个表达是等效的
U('Form/text?id=25&ty=1')
U('Form/text','id=25&ty=1')
U('Form/text',array('id=>25','ty=>1'))

访问 http://www.bnzoo.com/Admin/Form/text/id/25/ty/1,U函数表达如下:

//下面三个表达是等效的
U('Admin/Form/text?id=25&ty=1')
U('Admin/Form/text','id=25&ty=1')
U('Admin/Form/text',array('id=>25','ty=>1'))

如果www.bnzoo.com和admin.bnzoo.com都指向当前应用的话,想通过 admin.bnzoo.com 访问 Admin/Form/text/id/25/ty/1,即访问 http://admin.bnzoo.com/Admin/Form/text/id/25/ty/1,U函数表达如下:

//下面三个表达是等效的
U('Admin/Form/text@admin.bnzoo.com?id=25&ty=1')
U('Admin/Form/text@admin.bnzoo.com','id=25&ty=1')
U('Admin/Form/text@admin.bnzoo.com',array('id=>25','ty=>1'))

如果设置了路由,U函数也能支持路由。比如我们定义一个路由规则:

'text/:id\d'=>'Index/text'

U函数下面的表达都是可以的:

U('/text/25')
U('Index/text?id=25')

假设当前地址是 http://www.bnzoo.com/Home/Index/index,那么它们生成的URL地址分别是:

http://www.bnzoo.com/Home/text/25
http://www.bnzoo.com/Home/Index/text/id/25

Thinkphp中的U函数(Thinkphp3.2.3版本)的更多相关文章

  1. Thinkphp中的 I 函数(Thinkphp3.2.3版本)

    I 函数的作用是获取系统变量,必要时还可以对变量值进行过滤及强制转化,I 函数的语法格式: I('变量类型.变量名/修饰符',['默认值'],['过滤方法或正则'],['额外数据源']) 一.获取变量 ...

  2. Thinkphp中的A 函数(Thinkphp3.2.3版本)

    A函数是TP中实例化控制器的一个快捷函数,它的语法结构如下: A('模块/控制器') //当控制器层名称不是 Controller 时须这样写 A('模块/控制器','控制器层名称') 如果要调用的控 ...

  3. ThinkPHP中的快捷函数小结

    U() 制作url地址的快捷函数 C(名称) 获得配置变量(convertion.php config.php)信息C(名称,值) 设置配置变量信息 L() 获得语言变量信息E() 给页面输出错误信息 ...

  4. thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么

    thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么 一.总结 一句话总结:在thinkphp中,我们访问的始终是入口文件,并没有主动去访问任何一个其他文件,只不过在入口文件体内 ...

  5. Thinkphp模板中使用自定义函数的方法

    注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...

  6. 关于thinkphp3.2中的U函数使用的是二级域名但是U函数生成的还是WWW开头的域名

    关于thinkphp3.2中的U函数使用的是二级域名但是U函数生成的还是WWW开头的域名 查看代码是由于U函数中对开启 APP_SUB_DOMAIN_DEPLOY  子域名部署 加的额外设置 如果你使 ...

  7. thinkphp模板中使用自定义函数

    注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...

  8. thinkphp中的内置操作数据库与mysql中的函数汇总

    8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...

  9. 封装一个函数,在ThinkPHP中一定程度上取代success和error

    1.下载jq2.下载layer3.根据自己的项目配置,将上述2文件放到样式目录中4.在Application/Common/function.php中添加如下代码function msg($msg,$ ...

随机推荐

  1. bzoj千题计划251:bzoj3672: [Noi2014]购票

    http://www.lydsy.com/JudgeOnline/problem.php?id=3672 法一:线段树维护可持久化单调队列维护凸包 斜率优化DP 设dp[i] 表示i号点到根节点的最少 ...

  2. bzoj千题计划177:bzoj1858: [Scoi2010]序列操作

    http://www.lydsy.com/JudgeOnline/problem.php?id=1858 2018 自己写的第1题,一遍过 ^_^ 元旦快乐 #include<cstdio> ...

  3. 服务器数据恢复_Linux网站服务器故障数据恢复案例

    [数据恢复故障描述] 一台linux网站服务器,DELL R200,管理约50个左右网站,使用一块SATA 160GB硬盘.正常使用中突然宕机,尝试再次启动失败,将硬盘拆下检测时发现存在约100个坏扇 ...

  4. VS 提示:请考虑使用 app.config 将程序集“XXX”从版本“XX”重新映射到版本“XX”,以解决冲突并消除警告。

    具体提示如下: 请考虑使用 app.config 将程序集"System.Web.Http.WebHost, Culture=neutral, PublicKeyToken=31bf3856 ...

  5. SQL Server 实现递归查询

    基础数据/表结构                 Sql 语句 ;With cte(id,pid,TName)As ( Select id,pid,TName Union All Select B.i ...

  6. Python内置函数(57)——print

    英文文档: print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) Print objects to the text str ...

  7. vSphere Client 搭建Windows server 2008 r2 服务器指南

    下载准备 下载并安装vSphere Client 链接:https://pan.baidu.com/s/1v0IrGrMjpA2FGeqagaJN-g 密码:zzd1 下载Windows server ...

  8. 阿里云API网关(18)请求报文和响应报文

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  9. Python scrapy框架

    Scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设 ...

  10. django Form组件

    django Form组件 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次提交数据 初始化页面显示内容 小试牛刀 1.创建 ...