ThinkPHP 控制器(三)

四、输入变量


1、常规获取变量的方式

$id=$_GET['ID'],

$name=$_POST['name'],

$value=$_SESSION['var'],

$name=$_COOKIE['name'],

$file=$_SERVER['PHP_SELF'],

PS:没有统一的安全处理机制,后期调整会比较麻烦


2、I()方法:

I(‘变量类型.变量名’,['默认值'],['过滤方法'])

//获取$_GET['id'];
echo I('get.id');


//$_GET['id']没有值,则默认1
echo I('get.id', 1);


//过滤$_GET['id']
echo I('get.id','','md5');


//获取$_GET;
print_r(I('get.'));


PS:其他几个系统变量均采用以上方式,这里不在赘述。 

ThinkPHP 还提供了一个自动识别各种系统变量类型的接受方法:param


//param变量自动判断变量类型
echo I('param.id');


//param可以省略
echo I('id');


如果是 PATHINFO 模式的 URLparam也可以接收。
//param获取URL所有参数
print_r(I('param.0'));


PS
:取消和开启 URL 'URL_PARAMS_BIND_TYPE'=>1配置定义,在访问这个 URL
时候结果有所不同:
http://localhost/demo39/User/index/id/5/type/a


关闭 URL 传参顺序:Array ( [id] => 5 [type] => a )
开启 URL 传参顺序:Array ( [0] => id [1] => 5 [2] => type [3] => a )


//param获取指定参数值
echo I('param.id');
echo I('param.type');

默认情况下,I()的默认过滤是:htmlspecialchars,过滤掉HTML


//过滤HTML,如果去掉了,则传递包含HTML的字符串,将不过滤
'DEFAULT_FILTER'=>'htmlspecialchars',


当然,如果不过滤,也可以在程序中过滤。
//设置过滤函数,会忽略配置文件里的设置
echo I('get.id','','htmlspecialchars');


如果系统设置了默认的过滤,本身某个函数又不想过滤,那么可以这么处理:
//设置屏蔽系统默认过滤
echo I('get.id','',false);//第三参数为空字符串均可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值