ThinkPHP 3.1快速入门:变量

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

获取变量

首先,我们来谈下如何获取变量。
第一种方式:传统获取方式
你仍然可以在开发过程中使用传统方式获取各种系统变量,例如:

$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。

时间: 2025-01-27 15:07:50

ThinkPHP 3.1快速入门:变量的相关文章

ThinkPHP 3.1快速入门:连贯操作

上一篇我们详细描述了查询语言的用法,但是查询语言仅仅解决了查询或者操作条件的问题,更多的配合还需要使用模型提供的连贯操作方法. 介绍 连贯操作可以有效的提高数据存取的代码清晰度和开发效率,并且支持所有的CURD操作,也是ThinkPHP的ORM中的一个亮点.使用也比较简单, 假如我们现在要查询一个User表的满足状态为1的前10条记录,并希望按照用户的创建时间排序 ,代码如下: $User->where('status=1')->order('create_time')->limit(1

ThinkPHP 3.1快速入门:基础

ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持. 目录结构 ThinkPHP最新版本可以在官方网站(http://thinkphp.cn/down/framework.html)或者Github(https://github.com/liu21st/thinkphp/do

ThinkPHP 3.1快速入门:变量输出

在上一章我们了解了如何通过assign方法把变量赋值到模板变量,这一篇我们来详细了解下如何在模板中使用标签输出模板变量.注意,本篇的描述仅针对使用内部模板引擎的情况,如果你使用了Smarty或者其他模板引擎,请参考其相关的变量输出语法. 变量输出 变量输出的方法很简单,例如,在控制器中我们给模板变量赋值: $http://www.aliyun.com/zixun/aggregation/11696.html">name = ' ThinkPHP';$this->assign('nam

ThinkPHP 3.1快速入门:IP地址定位

在WEB应用中,根据IP地址定位和记录相关访问日志也是非常常见的需求,在ThinkPHP中你可以轻松的实现IP地址获取和定位. 获取扩展类库 可以在官网的http://www.thinkphp.cn/extend/223.html下载IP定位扩展类库,或者下载扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含该扩展类了.如果是单独下载的上传类库,把解压后的IpLocation.class.php 放入ThinkPHP/Extend/Library/O

ThinkPHP 3.1快速入门:数据分页

我们已经了解了如何进行数据查询,今天我们来学习下如何对数据进行分页以及显示. 获取分页类 ThinkPHP提供了数据分页的扩展类库Page,可以在http://www.thinkphp.cn/extend/241.html下载,或者下载官方的完整扩展包(http://www.thinkphp.cn/down/253.html)里面也已经包含分页扩展类了.把解压后的Page.class.php放入ThinkPHP/Extend/Library/ORG/Util/(如果没有请手动创建)目录下面.当然

ThinkPHP 3.1快速入门:模板布局

ThinkPHP的模板引擎内置了布局模板功能支持,可以方便的实现模板布局以及布局嵌套功能.有三种布局模板的支持方式: 第一种方式:全局配置方式 这种方式仅需在项目配置文件中添加相关的布局模板配置,就可以简单实现模板布局功能,比较适用于全站使用相同布局的情况,需要配置开启LAYOUT_ON 参数(默认不开启),并且设置布局入口文件名LAYOUT_NAME(默认为layout). 'LAYOUT_ON'=>true, &http://www.aliyun.com/zixun/aggregatio

ThinkPHP 3.1快速入门:多语言

ThinkPHP支持多语言,采用的是语言文件的方式.如果你的应用涉及到多个http://www.aliyun.com/zixun/aggregation/18713.html">语言版本和国际化的支持,那么可以定义相关的语言包文件.任何字符串形式的输出,都可以定义语言常量. 启用多语言 要启用多语言功能,首先要下载多语言行为扩展(http://www.thinkphp.cn/extend/186.html),或者下载官方的完整扩展包(http://www.thinkphp.cn/down/

ThinkPHP 3.1快速入门:行为

行为(Behavior)是ThinkPHP扩展机制中比较关键的一项扩展,行为既可以独立调用,也可以绑定到某个标签中进行侦听,官方提出的CBD模式中行为也占了主要的地位,可见行为在ThinkPHP框架中意义非凡.这里指的行为是一个比较抽象的概念,你可以想象成在应用执行过程中的一个动作或者处理,在框架的执行流程中,各个位置都可以有行为产生,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测.多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第

ThinkPHP 3.1快速入门:控制器高级特性

ThinkPHP的控制器层由核心控制器和业务控制器组成,核心控制器由系统内部的App类完成,负责应用(包括模块和操作)的调度控制,包括HTTP请求拦截和转发.加载配置等,业务控制器则由用户定义的http://www.aliyun.com/zixun/aggregation/16339.html">Action类或者其他控制器类完成.我们通过前面的学习,已经了解了基本的控制器用法,这一篇我们来讲述下控制器的一些特性和高级用法,来探索ThinkPHP控制器的神秘外衣. Action参数绑定 在