TP 框架中 获取变量 I()方法
ThinkPHP 中 I() 是获取变量值,可以通过这个方法,对变量进行验证,从而保证了数据的可靠性。
I("变量类型.变量名/修饰符",["默认值"],["过滤方法"],["额外数据源"])
变量类型是指请求方式或者输入类型,包括:
变量类型 | 含义 |
---|---|
get | 获取GET参数 |
post | 获取POST参数 |
param | 自动判断请求类型获取GET、POST或者PUT参数 |
request | 获取REQUEST 参数 |
put | 获取PUT 参数 |
session | 获取 $_SESSION 参数 |
cookie | 获取 $_COOKIE 参数 |
server | 获取 $_SERVER 参数 |
globals | 获取 $GLOBALS参数 |
path | 获取 PATHINFO模式的URL参数(3.2.2新增) |
data |
获取 其他类型的参数,需要配合额外数据源参数(3.2.2新增) |
注意:变量类型不区分大小写。
变量名则严格区分大小写。
默认值和过滤方法均属于可选参数。
变量修饰符是3.2.3版本新增
echo I("get.id"); // 相当于 $_GET["id"] echo I("get.name"); // 相当于 $_GET["name"]<span style="font-family:微软雅黑;color:#0382ad;"><span style="font-size: 16px; line-height: 27.2000007629395px;"><strong> </strong></span></span>
// 采用htmlspecialchars方法对$_GET["name"] 进行过滤,如果不存在则返回空字符串 echo I("get.name","","htmlspecialchars");
// 获取整个$_GET 数组 I("get.");
I("server.REQUEST_METHOD"); // 获取 $_SERVER["REQUEST_METHOD"]
param变量类型是框架特有的支持自动判断当前请求类型的变量获取方式,例如:
echo I("param.id");
如果当前请求类型是GET,那么等效于 $_GET["id"],如果当前请求类型是POST或者PUT,那么相当于获取 $_POST["id"] 或者 PUT参数id。
由于param类型是I函数默认获取的变量类型,因此事实上param变量类型的写法可以简化为:
I("id"); // 等同于 I("param.id") I("name"); // 等同于 I("param.name")
path类型变量可以用于获取URL参数(必须是PATHINFO模式参数有效,无论是GET还是POST方式都有效),例如: 当前访问URL地址是
http://serverName/index.php/New/2013/06/01
echo I("path.1"); // 输出2013 echo I("path.2"); // 输出06 echo I("path.3"); // 输出01<code><span style="font-family:Consolas, Liberation Mono, Courier, 微软雅黑;color:#c7254e;"><span style="font-size: 16px; line-height: 27.2000007629395px; white-space: nowrap; background-color: rgb(249, 242, 244);"> </span></span></code>
如果没有在调用I函数的时候指定过滤方法的话,系统会采用默认的过滤机制(由DEFAULT_FILTER配置),事实上,该参数的默认设置是:
// 系统默认的变量过滤机制 "DEFAULT_FILTER" => "htmlspecialchars"
也就说,I方法的所有获取变量如果没有设置过滤方法的话都会进行htmlspecialchars过滤,那么:
// 等同于 htmlspecialchars($_GET["name"]) I("get.name");支持多个过滤,例如:
"DEFAULT_FILTER" => "strip_tags,htmlspecialchars"3.2.3版本开始,I函数支持对变量使用修饰符功能,可以更好的过滤变量。
I("变量类型.变量名/修饰符");
I("get.id/d"); I("post.name/s"); I("post.ids/a");
可以使用的修饰符包括:
修饰符 | 作用 |
---|---|
s | 强制转换为字符串类型 |
d | 强制转换为整形类型 |
b | 强制转换为布尔类型 |
a | 强制转换为数组类型 |
f | 强制转换为浮点类型 |
来自:tp手册
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: TP中可通过字段映射隐藏数据表的字段名
- 下一篇: 二维数组的排序