Thinkphp中的U函数(Thinkphp3.2.3版本)
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版本)的更多相关文章
- Thinkphp中的 I 函数(Thinkphp3.2.3版本)
I 函数的作用是获取系统变量,必要时还可以对变量值进行过滤及强制转化,I 函数的语法格式: I('变量类型.变量名/修饰符',['默认值'],['过滤方法或正则'],['额外数据源']) 一.获取变量 ...
- Thinkphp中的A 函数(Thinkphp3.2.3版本)
A函数是TP中实例化控制器的一个快捷函数,它的语法结构如下: A('模块/控制器') //当控制器层名称不是 Controller 时须这样写 A('模块/控制器','控制器层名称') 如果要调用的控 ...
- ThinkPHP中的快捷函数小结
U() 制作url地址的快捷函数 C(名称) 获得配置变量(convertion.php config.php)信息C(名称,值) 设置配置变量信息 L() 获得语言变量信息E() 给页面输出错误信息 ...
- thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么
thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么 一.总结 一句话总结:在thinkphp中,我们访问的始终是入口文件,并没有主动去访问任何一个其他文件,只不过在入口文件体内 ...
- Thinkphp模板中使用自定义函数的方法
注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...
- 关于thinkphp3.2中的U函数使用的是二级域名但是U函数生成的还是WWW开头的域名
关于thinkphp3.2中的U函数使用的是二级域名但是U函数生成的还是WWW开头的域名 查看代码是由于U函数中对开启 APP_SUB_DOMAIN_DEPLOY 子域名部署 加的额外设置 如果你使 ...
- thinkphp模板中使用自定义函数
注意:自定义函数要放在项目应用目录/common/common.php中. 这里是关键. 模板变量的函数调用格式:{$varname|function1|function2=arg1,arg2,### ...
- thinkphp中的内置操作数据库与mysql中的函数汇总
8.4.4 Model类getModelName() 获取当前Model的名称getTableName() 获取当前Model的数据表名称switchModel(type,vars=array()) ...
- 封装一个函数,在ThinkPHP中一定程度上取代success和error
1.下载jq2.下载layer3.根据自己的项目配置,将上述2文件放到样式目录中4.在Application/Common/function.php中添加如下代码function msg($msg,$ ...
随机推荐
- html{font-size:62.5%}
为什么要使用html,body{font-size:62.5%}? 使用以下代码查看浏览器的初始font-size: <!DOCTYPE html><html><head ...
- 《javascript设计模式与开发实践》阅读笔记(10)—— 组合模式
组合模式:一些子对象组成一个父对象,子对象本身也可能是由一些孙对象组成. 有点类似树形结构的意思,这里举一个包含命令模式的例子 var list=function(){ //创建接口对象的函数 ret ...
- MSSQL---extents
一.MSSQLextent分两种: 1. Mixed extent:每个表或索引创建时,MSSQL并不给它分配一个extent,而是在mixed extnet内分配一个页,空间需求扩大时,再分配一个… ...
- Python-进程与线程理论基础-Day10
进程与线程理论基础 1.背景知识 理论基础: 一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理.调度进程,并且将多个进程对硬件的竞争变得有序 二 多道技术: 1.产生背景 ...
- Linux实战案例(6)yum查找、卸载、和安装软件
0.查找要安装的软件名字 yum search iostat就能查到以及iostat相干的安装包了, 别的想安装一个程序,只记得一部门名称,也可以用这个措施来实现安装 yum search png | ...
- [洛谷P1196][NOI2002]银河英雄传说 - 带偏移量的并查集(1)
Description 公元五八〇一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发 ...
- 智能提示含查询多列(html+JS+handler+ HttpRemoting)一、html示列 加 JS加 请求 Handler
<html> <head> </head> <body> <form id="recordform" name="r ...
- 从感知机到 SVM,再到深度学习(二)
这篇博文承接上一篇,详细推导了 SVM 算法,包括对偶算法,SMO 优化算法,核函数技巧等等,最后还提到用高度非线性的曲线代替超平面,就是神经网络的方法. 在第一篇中已经得到了最优间隔 ...
- 生成器以及yield语句
生成器以及yield语句最初的引入是为了让程序员可以更简单的编写用来产生值的序列的代码. 以前,要实现类似随机数生成器的东西,需要实现一个类或者一个模块,在生成数据的同时 保持对每次调用之间状态的跟踪 ...
- js 中的栈和堆
js中的栈与堆的讲解/基本数据类型与引用类型的讲解 前言:1. 学习前端,入门简单,想学好确实是一件很困难的事情,东西多而且杂,版本快速迭代,产品框架层出不穷. 2. 前端学习成本确实很高,需要不断的 ...