本文实例讲述了thinkphp3.x中变量的获取和过滤方法。分享给大家供大家参考,具体如下:
这里我们来学习如何在ThinkPHP中使用变量和对变量进行过滤。
在Web开发过程中,我们经常需要获取系统变量或者用户提交的数据,这些变量数据错综复杂,而且一不小心就容易引起安全隐患,但是如果利用好ThinkPHP提供的变量获取功能,就可以轻松的获取和驾驭变量了。
一、获取变量
1.首先,我们来谈下如何获取变量。
第一种方式:传统获取方式,你仍然可以在开发过程中使用传统方式获取各种系统变量,例如:
$id = $_GET['id'];//获取get变量$name = $_POST['name'];//获取post变量$value = $_SESSION['var'];//获取session变量$name = $_COOKIE['name'];//获取cookie变量$file = $_SERVER['PHP_SELF'];//获取server变量
不建议直接使用传统方式获取,因为没有统一的安全处理机制,后期如果调整的话,改起来会比较麻烦。
第二种方式:使用Action类提供的动态方法
系统的Action类提供了对系统变量的增强获取方法,包括对GET、POST、PUT、REQUEST、SESSION、COOKIE、SERVER和GLOBALS参数,除了获取变量值外,还提供变量过滤和默认值支持,用法很简单,只需要在Action中调用下面方法:
$id = $this->_get('id');//获取get变量$name = $this->_post('name');//获取post变量$value = $this->_session('var');//获取session变量$name = $this->_cookie('name');//获取cookie变量$file = $this->_server('PHP_SELF');//获取server变量
调用格式为:
$this->方法名("变量名",["过滤方法"],["默认值"])
支持的方法名:
_get 获取GET参数
_post 获取POST参数
_param 自动判断请求类型获取GET、POST或者PUT参数
_request 获取REQUEST参数
_put 获取PUT参数
_session 获取$_SESSION参数
_cookie 获取$_COOKIE参数
_server 获取$_SERVER参数
_globals 获取$GLOBALS参数
变量名:(必须)是要获取的系统变量的名称
过滤方法:(可选)可以用任何的内置函数或者自定义函数名,如果没有指定的话,采用默认的htmlspecialchars函数进行安全过滤(由DEFAULT_FILTER 参数配置),参数就是前面方法名获取到的值,
也就是说如果调用:
$this->_get("name");
最终调用的结果就是 htmlspecialchars($_GET["name"]),如果要改变过滤方法,可以使用:
$this->_get("name","strip_tags");
默认值:(可选)是要获取的参数变量不存在的情况下设置的默认值,例如:
$this->_get("id","strip_tags",0);
如果$_GET["id"] 不存在的话,会返回0。
如果没有设置任何默认值的话,系统默认返回NULL。
新闻热点
疑难解答