ThinkPHP中传统方式获取变量外,也可以使用thinkphp提供的更加方便和安全的获取系统,输入变量。
I('变量类型.变量名/修饰符',['默认值'],['过滤方法'],['额外数据源'])
变量类型
get 获取GET参数
post 获取POST参数
param 自动判断请求类型获取GET、POST或者PUT参数
request 获取REQUEST 参数
put 获取PUT 参数
session 获取 $_SESSION 参数
cookie 获取 $_COOKIE 参数
server 获取 $_SERVER 参数
globals 获取 $GLOBALS参数
path 获取 PATHINFO模式的URL参数
data 获取 其他类型的参数,需要配合额外数据源参数
注意:变量类型不区分大小写。
变量名则严格区分大小写。
默认值和过滤方法均属于可选参数。
ThinkPHP 获取get post参数:
I(‘get.id’) GET方式
I(‘post.id’) POST方式
I(‘id’) param 自动区分GET POST方法 类似于PHP中的$_REQUEST
I(‘get.’) / I(‘post.’) 返回输入参数的数组集合
I(‘path.1’) I(‘path.2’) 对访问的URL或者传入的GET参数进行分割
I(‘id’,’default_value’);参数2 为默认值设置 如果不填则返回默认值
I(‘id’,’default_value’,’function_name’);参数3为进行验证过滤的方法名字,在变量时数组的情况下会自动使用array_map进行过滤处理,否则会调用PHP内置的filter_var方法进行处理
I('post.email','error email',FILTER_VALIDATE_EMAIL);
FILTER_VALIDATE_EMAIL PHP自带的验证
I('age',0,'int');
ThinkPHP 验证支持列别
int
boolean
float
validate_regexp
validate_url
validate_email
validate_ip
string
stripped
encoded
special_chars
unsafe_raw
email
url
number_int
number_float
magic_quotes
callback
正则验证
// 采用正则表达式进行变量过滤
I('get.name','','/^[A-Za-z]+$/');
I('get.id',0,'/^\d+$/');
变量过滤 验证
ThinkPHP默认的验证方式是 htmlspecialchars 。在thinkphp Conf/convention.php进行配置
'DEFAULT_FILTER' => 'htmlspecialchars'// 默认参数过滤方法 用于I函数
支持做方法过滤
'DEFAULT_FILTER' => 'htmlspecialchars,strip_tags'
逗号隔开 增加多种规则过滤
如果使用I方法时指定了过滤方法,就会忽略DEFAULE_FILTER设置
关闭DEFAULT_FILTER验证
I('get.name','','');
I('get.id','',false);
变量修饰符
I(‘变量类型.变量名/修饰符’);
I('get.id/d');
I('post.name/s');
I('post.ids/a');
修饰符 作用
s 强制转换为字符串类型
d 强制转换为整形类型
b 强制转换为布尔类型
a 强制转换为数组类型
f 强制转换为浮点类型