ThinkPHP 获取get post参数与I方法

传统方式获取变量
$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‘]
时间: 2024-08-04 18:47:47

ThinkPHP 获取get post参数与I方法的相关文章

thinkphp获取特定字段的两种方法

thinkphp getField( )和field( ) 2014年10月05日 ⁄ 综合 ⁄ 共 1509字 ⁄ 字号 小 中 大 ⁄ 评论关闭 做数据库查询的时候,比较经常用到这两个,总是查手册,记不住,现在把它总结下,希望以后用的时候不查手册了. 不管是用select 查询数据集,还是用find 查询数据,常配合连贯操作where.field.order等一起使用.  field():用于定义要查询的字段(支持字段排除) 用法:field($field , $except=false)

thinkphp 获取PATHINFO模式参数

path类型变量可以用于获取URL参数(必须是PATHINFO模式参数有效,无论是GET还是POST方式都有效),例如: 当前访问URL地址是 http://serverName/index.php/New/2013/06/01那么我们可以通过echo I('path.1'); // 输出2013echo I('path.2'); // 输出06echo I('path.3'); // 输出01

Javascript 获取链接(url)参数的方法

qa项目可能需要客户端获取到url的参数,搜到一个很好的解决方法,记录在博客,省得以后找麻烦. 方法一:分解链接的方式 <script type="text/javascript"> /* * 说明:Javascript 获取链接(url)参数的方法 */ function getQueryString(name) { // 如果链接没有参数,或者链接中不存在我们要获取的参数,直接返回空 if(location.href.indexOf("?")==-1

js获取url的参数和值的N种有效方法

js获取url的参数和值的N种有效方法 function getParameterByName(name) { name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); var regexS = "[\\?&]" + name + "=([^&#]*)"; var regex = new RegExp(regexS); var results =

ThinkPHP 跨模块调用操作方法(A方法与R方法)

ThinkPHP 跨模块调用操作方法(A方法与R方法) 跨模块调用操作方法 前面说了可以使用 $this 来调用当前模块内的方法,但实际情况中还经常会在当前模块调用其他模块的方法.ThinkPHP 内置了 A方法与 R 方法这两个特殊的大写字母方法来处理跨模块调用的问题. 目前 Index 模块内有 index 操作,User 模块有 showName 操作,User 模块及 showName 操作具体代码如下: <?php class UserAction extends Action{ pu

ThinkPHP中的动态缓存(S方法)和快速缓存(F方法)

系统默认的缓存方式是采用File方式缓存,我们可以在项目配置文件里面定义其他的缓存方式,例如,修改默认的缓存方式为Xcache(当然,你的环境需要支持Xcache) 对于File方式缓存下的缓存目录下面因为缓存数据过多而导致存在大量的文件问题,ThinkPHP也给出了解决方案,可以启用哈希子目录缓存的方式. 'DATA_CACHE_SUBDIR'=>true 还可以设置哈希目录的层次,例如 'DATA_PATH_LEVEL'=>2 就可以根据缓存标识的哈希自动创建多层子目录来缓存. S方法支持

三个获取浏览器URL中参数值的方法

这三个是一般的获取浏览器传的参数值的方法,之前有用unescape()解码的方法,但是遇到汉字会产生乱码,所以用decodeURI(); 方法一: function getQueryString(name) { //获取url方法 编辑传来的参数 //之前decodeURI是用的unescape() 有时候会取汉字乱码 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); var r

【Servlet】Javaweb中获取任意个参数

总有这样的情况,传递到后台处理方法的参数数目不知道. 比如某个前台以前要传递给getAllParameter这个Servlet的参数位置.而又要再Servlet对不定长的参数进行一一分解,这该怎么办呢? 下面做一个简单的Javaweb工程来说明这个问题,整个Javaweb工程就getAllParameter.java这个Servlet 如下图所示,无论传递给getAllParameter这个Servlet多少个参数, getAllParameter这个Servlet都一一能够将其输出. 这时候关

【php】php中获取任意个参数

本文与<[Servlet]Javaweb中获取任意个参数>(点击打开链接)为姊妹篇, 如果你有时候需要通过get方法在php页面之间传递不定个参数,该怎么实现呢? 比如如下的效果,无论通过get方法,给numUndefindParameter.php这个页面传递任意个参数,它都能正常获取. 当然,一般不推荐这样做,建议还是用<[php]基本语法与页面之间数值传递>(点击打开链接)早已说过的,非常著名的$_REQUEST["某某某参数"];的做法. 本方法,主要是