ThinkPHP 获取get post参数与I方法

jerry thinkphp 2015年11月15日 收藏

传统方式获取变量

$id    =  $_GET['id'];            // 获取get变量
$name  =  $_POST['name'];         // 获取post变量
$value =  $_SESSION['var'];   // 获取session变量
$name  =  $_COOKIE['name'];   // 获取cookie变量
$file  =  $_SERVER['PHP_SELF']; // 获取server变量

Get示例:

http://localhost/news/archive/2012/01/15


 $year = $_GET["_URL_"][2];

I方法

I(‘变量类型.变量名/修饰符’,[‘默认值’],[‘过滤方法’],[‘额外数据源’])
get获取GET参数
post获取POST参数
param自动判断请求类型获取GET、POST或者PUT参数
request获取REQUEST 参数
put获取PUT 参数
session获取 $_SESSION 参数
cookie获取 $_COOKIE 参数
server获取 $_SERVER 参数
globals获取 $GLOBALS参数
path获取 PATHINFO模式的URL参数(3.2.2新增)
data获取 其他类型的参数,需要配合额外数据源参数(3.2.2新增)

使用示例:

echo I('post.id');          // 相当于 $_POST['id']
echo I('get.name');         // 相当于 $_GET['name']
echo I('param.id');         // get或post,param.可以省略
echo I('path.1');           // 获取重写的url变量
I('get.id/d');              // 强制转换成整数,有以下几种可选择:
参数含义
s强制转换为字符串类型
d强制转换为整形类型
b强制转换为布尔类型
a强制转换为数组类型
f强制转换为浮点类型
I('data.file1','','',$_FILES);         //读取文件
I('get.');                  // 获取整个$_GET 数组
I('post.name','','htmlspecialchars');   // 采用htmlspecialchars方法对$_POST['name'] 进行过滤,如果不存在则返回空字符串。这是默认过滤,可以省略
I('session.user_id',0);     // 获取$_SESSION['user_id'] 如果不存在则默认为0
I('cookie.');               // 获取整个 $_COOKIE 数组
I('server.REQUEST_METHOD'); // 获取 $_SERVER['REQUEST_METHOD']