位置: 编程技术 - 正文

thinkphp3.x中变量的获取和过滤方法详解(thinkphp i方法)

编辑:rootadmin

推荐整理分享thinkphp3.x中变量的获取和过滤方法详解(thinkphp i方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:thinkphp i方法,thinkphp修改数据,thinkphp constants,thinkphp yii,thinkphp constants,thinkphp pathinfo,thinkphp pathinfo,thinkphp constants,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了thinkphp3.x中变量的获取和过滤方法。分享给大家供大家参考,具体如下:

这里我们来学习如何在ThinkPHP中使用变量和对变量进行过滤。

在Web开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了。

一、获取变量

1.首先,我们来谈下如何获取变量。

第一种方式:传统获取方式,你仍然可以在开发过程中使用传统方式获取各种系统变量,例如:

不建议直接使用传统方式获取,因为没有统一的安全处理机制,后期如果调整的话,改起来会比较麻烦。

第二种方式:使用Action类提供的动态方法

系统的Action类提供了对系统变量的增强获取方法,包括对GET、POST、PUT、REQUEST、SESSION、COOKIE、SERVER和GLOBALS参数,除了获取变量值外,还提供变量过滤和默认值支持,用法很简单,只需要在Action中调用下面方法:

调用格式为:

$this->方法名("变量名",["过滤方法"],["默认值"])

支持的方法名:

_get 获取GET参数_post 获取POST参数_param 自动判断请求类型获取GET、POST或者PUT参数_request 获取REQUEST参数_put 获取PUT参数_session 获取$_SESSION参数_cookie 获取$_COOKIE参数_server 获取$_SERVER参数_globals 获取$GLOBALS参数

变量名:(必须)是要获取的系统变量的名称

过滤方法:(可选)可以用任何的内置函数或者自定义函数名,如果没有指定的话,采用默认的htmlspecialchars函数进行安全过滤(由DEFAULT_FILTER 参数配置),参数就是前面方法名获取到的值,

也就是说如果调用:

最终调用的结果就是 htmlspecialchars($_GET["name"]),如果要改变过滤方法,可以使用:

默认值:(可选)是要获取的参数变量不存在的情况下设置的默认值,例如:

如果$_GET["id"] 不存在的话,会返回0。

如果没有设置任何默认值的话,系统默认返回NULL。

其他方法的用法类似。

看起来好像差别不大,但是有一个明显的优势,就是如果我需要增加或者改变对这些变量做统一的过滤,一般不需要修改变量获取的代码,只是在项目配置文件中增加一个配置参数即可,例如:

对所有的采用动态方式获取的变量使用strip_tags方法进行统一过滤,也可以支持多个过滤方法,例如:

thinkphp3.x中变量的获取和过滤方法详解(thinkphp i方法)

表示先进行strip_tags过滤,然后再进行htmlspecialchars过滤。

如果你在获取某个变量的时候 需要自定义过滤方法,则可以改成:

如果你在项目配置中设置了统一的变量过滤方法,但是希望对某些变量不进行过滤,则可以用:

如果你的参数可能会来自于多个提交方式,那么可以使用_param方法来更方便的获取,例如:

当前为get方式提交的时候,就等效于

当前为post方式提交的时候,就等效于

如果为put方式提交的话,就等效于

其优点自然很明显,同一个方法可以接受不同提交类型的变量,不用手动做太多的判断再来获取不同的参数了。

二、获取URL参数

在某些情况下面,我们还有一种获取URL参数的特殊需求,一般来说,获取URL参数是采用get变量的方式就够用了,但是对于我们定制过的URL,或者采用了路由的情况下面,URL的参数可能会没有规律,这个时候,我们可以采用另外一种方式来获取。

例如,当前的URL地址是:

方式的变量获取,仅对PATHINFO模式URL地址有效

三、变量过滤

前面我们已经了解了如何使用Action类提供的方法来进行变量获取和过滤了,但是在没有调用这些动态方法的前提下,我们怎么来进行数据过滤呢?

ThinkPHP还提供了两种方式来进行数据过滤操作:

第一:配置全局的变量过滤

这种情况是针对一些会在多使用的情况,可以通过配置全局过滤 简化操作,例如在项目配置文件中添加参数:

则会对全局的get和post变量进行过滤,其他类型的系统变量需要自行过滤。

第二:在写入数据库之前进行变量过滤

如果你的变量数据是要写入到数据库的话,可以在数据写入数据库之前调用filter方法对数据进行安全过滤,例如:

在执行add方法之前,会对$data数据进行strip_tags过滤处理。但是,这种方式下面,filter方法不支持多个过滤方法。

四、总结

使用ThinkPHP,我们可以轻松地对系统变量的获取和过滤,你的开发功力明显提升了不少。加油,后面还会讲解如何使用路由。

PS:这里推荐几款本站的格式化美化工具,相信大家在以后的开发中能够用得上:

php代码在线格式化美化工具:

ThinkPHP使用Ueditor的方法详解 本文实例讲述了ThinkPHP使用Ueditor的方法。分享给大家供大家参考,具体如下:相信很多人现在还在用着FCkeditor,以前我也在用,可是后来发现百度的Uedit

ThinkPHP表单令牌错误的相关解决方法分析 本文分析了ThinkPHP表单令牌错误的相关解决方法。分享给大家供大家参考,具体如下:今天在用ThinkPHP做程序的时候,以前用create创建数据的时候,出现

thinkPHP3.x常量整理(预定义常量/路径常量/系统常量) 本文整理总结了thinkPHP3.x常用的常量。分享给大家供大家参考,具体如下:一、预定义常量URL_COMMON=0普通模式URLURL_PATHINFO=1PATHINFOURLURL_REWRITE=2REWRITEURLURL_CO

标签: thinkphp i方法

本文链接地址:https://www.jiuchutong.com/biancheng/294799.html 转载请保留说明!

上一篇:thinkphp3.x中session方法的用法分析

下一篇:ThinkPHP使用Ueditor的方法详解(thinkphp+vue)

  • 递延所得税资产借贷方向
  • 收入纳税数据是什么意思
  • 每个月必报的税种
  • 进口货物的完税价格不包括
  • 经营范围变更银行不变更有影响吗
  • 项目固定资产投资强度
  • 二手房交易税费最新规定
  • 长期待摊费用可以转入固定资产吗
  • 建筑 分包
  • 收到费用报销发票怎么做
  • 有形动产租赁服务
  • 企业收到预收账款,能不能给购买方开具发票
  • 事业单位财政授权书模板
  • 企业发生什么
  • 服装批发零售交什么税
  • 营改增后出售以前年度的固定资产怎么申报?
  • 小规模怎样计算进项税额
  • 农产品销售发票能否抵扣进项税?
  • 待抵扣进项税额是什么情况下用的
  • 消费税暂行条例实施细则
  • 携税宝如何网上缴费
  • 失控发票不处理的后果
  • 维修费属于印花税
  • 业务招待费不超过销售收入的5‰
  • 银行有流水但是没有开票怎么做账
  • 银行审计费
  • 详谈php编码转换过程
  • 合伙企业必须有什么并以其作为企业法律基础
  • 合同预付款怎么做账
  • 民间非营利组织会计报表
  • 临时用工怎样做账
  • 支付公司保洁费未开发票
  • 企业年金税前扣除比例
  • PHP:gettimeofday()的用法_Date Time函数
  • 固定资产非正常中断没超过三个月
  • k8s部署ingress-nginx
  • 资本化的研发费用计入什么科目
  • php关键字描红
  • opencv模板匹配多目标旋转
  • 用流程图的形式写出视觉的形成过程
  • tune a video:one-shot tuning of image diffusion models for text-to-video generation
  • React - Redux Hooks的使用细节详解
  • php或者判断
  • 应收账款期末余额在借方还是贷方
  • ps闪退是什么原因win11
  • 汽车销售公司购置税账务处理
  • 企业应收票据贴现,应按实际收到的金额计入
  • 看望生病职工慰问品
  • 预算会计年末怎么结账
  • 一般纳税人和小规模公司怎么区分
  • 公司注册流程百度百科
  • 合同权益转让 范本
  • sql 判断字符串中是否包含数字
  • 个人所得税租房专项扣除标准
  • 平均股东权益在哪里看
  • 小规模纳税人免税怎么做账
  • 电影卡购买
  • 个人所得税规定的免纳个人所得税的范围
  • 应收账款未收到是否要交税
  • 社保缴费基数调整后对个人的影响
  • 退回增值税发票怎么做处理
  • 所得税多缴纳分录
  • 汽车销售公司购入汽车会计分录
  • 出售短期债券投资发生的净损失计入哪里
  • sql注入讲解
  • mysql集群原理详解
  • win8系统怎么安装微信
  • 如何关闭mac上的icloud
  • 苹果电脑重新安装macos失败
  • win7旗舰版更改适配器没有蓝牙连接
  • win7系统打开我的电脑一闪
  • centos安装命令yum
  • 怎么在linux中安装软件
  • Python中文分词的第三方库
  • django环境配置
  • sell脚本
  • 工商局税收
  • 电子发票和普通发票哪个好
  • 内蒙古国税局官网
  • 电子税务局网页版
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设