PHP函数import_request_variables()用法分析


Posted in PHP onApril 02, 2016

本文实例分析了PHP函数import_request_variables()用法。分享给大家供大家参考,具体如下:

import_request_variables 函数可以在 register_global = off 时,把 GET/POST/Cookie 变量导入全局作用域中。

描述

bool import_request_variables ( string types [, string prefix])

将 GET/POST/Cookie 变量导入到全局作用域中。如果你禁止了 register_globals,但又想用到一些全局变量,那么此函数就很有用。

你可以使用 types 参数指定需要导入的变量。可以用字母'G'、'P'和'C'分别表示 GET、POST 和 Cookie。这些字母不区分大小写,所以你可以使用'g'、'p'和'c'的任何组合。POST 包含了通过 POST 方法上传的文件信息。注意这些字母的顺序,当使用“gp”时,POST 变量将使用相同的名字覆盖 GET 变量。任何 GPC 以外的字母都将被忽略。

prefix 参数作为变量名的前缀,置于所有被导入到全局作用域的变量之前。所以如果你有个名为“userid”的 GET 变量,同时提供了“pref_”作为前缀,那么你将获得一个名为 $pref_userid 的全局变量。

如果你对导入其它全局变量(例如 SERVER 变量)感兴趣,请考虑使用 extract()。

注: 虽然 prefix 参数是可选的,但如果不指定前缀,或者指定一个空字符串作为前缀,你将获得一个 E_NOTICE 级别的错误。使用默认错误报告级别是不显示注意(Notice)级别的错误的。

<?php
// This will import GET and POST vars
// with an "rvar_" prefix
import_request_variables("gp", "rvar_");
echo $rvar_foo;
?>

使用import_request_variables()函数可以有选择地注册全局变量集合。你可以使用该函数导入 $_GET、$_POST和$_COOKIE的值,还可以为每个导入的变量添加前缀(prefix)。

参数中types字符串中允许为g、p、c字符,或者3个字符间任意的组合。其中,“g”表示GET变量,“p”表示POST变量,“c”表示cookies。注意:3个字符的排列顺序是有区别的,当使用“pg”时,POST变量将使用相同的名字覆盖$_GET变量;反之,当使用“gp”时,$_GET变量数组将优先于$_POST。

使用import_request_variable()函数实现变量导入的脚本例子如下:

//导入POST提交的变量值,前缀为post_
import_request_variable("p", "post_");
//导入GET和POST提交的变量值,前缀为gp_,GET优先于POST
import_request_variable("gp", "gp_");
//导入Cookie和GET的变量值,Cookie变量值优先于GET
import_request_variable("cg", "cg_");

如果我们在import_request_variables()函数中使用了“pg参数”,请看如下脚本实例:

<?php
if(isset($_REQUEST['btn_submit'])){
echo "正常取得的表单POST变量值:".$_REQUEST['Username']."<br />";
import_request_variables("pg", "import_");
//显示导入的变量名称
echo "使用import_request_variables函数导入的变量值:".$import_Username;
}
?>
<form id="test_form" name="test_form" method="POST" action="">
请输入您的名字:
<label>
<input type="text" name="Username" id="Username" />
</label>
<label>
<input type="submit" name="btn_submit" id="btn_submit" value="提交" />
</label>
<br />
</form>

该表单提示用户输入一个名字,完成并提交后,脚本会把提交的名字显示在浏览器上。

注意:prefix前缀参数是必选的,如果未指定前缀,或者指定一个空字符串作为变量前缀,PHP会抛出一个E_NOTICE错误。

import_request_variables()函数为我们提供一个中间方法,适用于如下几种情况:

1. 当用户不能使用超级变量数组时;
2. 在php.ini配置文件的register_globals参数为Off(PHP 5之后的版本默认为Off)时,使用import_request_variables将GET/POST/Cookie这几个超级变量数组导入到全局作用域中。
3. 在开发时,只要声明了引入的变量范围,就不必写$_GET或$_REQUEST一堆很长的超级全局数组名称了。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
javascript,php获取函数参数对象的代码
Feb 03 PHP
php开启安全模式后禁用的函数集合
Jun 26 PHP
PHP中替换换行符的几种方法小结
Oct 15 PHP
php实现查询百度google收录情况(示例代码)
Aug 02 PHP
PHP统计目录大小的自定义函数分享
Nov 18 PHP
php多重接口的实现方法
Jun 20 PHP
php通过前序遍历树实现无需递归的无限极分类
Jul 10 PHP
php session 写入数据库
Feb 13 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
laravel框架语言包拓展实现方法分析
Nov 22 PHP
PHP 技巧 * SVG 保存为图片(分享图生成)
Apr 02 PHP
PHP数组函数array_multisort()用法实例分析
Apr 02 #PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 #PHP
PHP递归实现层级树状展开
Apr 01 #PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 #PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 #PHP
PHP全局变量与超级全局变量区别分析
Apr 01 #PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 #PHP
You might like
初学PHP的朋友 经常问的一些问题。不断更新
2011/08/11 PHP
php中simplexml_load_string使用实例分享
2014/02/13 PHP
PHP排序算法类实例
2015/06/17 PHP
简单谈谈PHP中strlen 函数
2016/02/27 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
php微信开发之谷歌测距
2018/06/14 PHP
PHP静态方法和静态属性及常量属性的区别与介绍
2019/03/22 PHP
浅谈laravel框架sql中groupBy之后排序的问题
2019/10/17 PHP
Javascript将string类型转换int类型
2010/12/09 Javascript
JavaScript:new 一个函数和直接调用函数的区别分析
2013/07/10 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
基于js实现的限制文本框只可以输入数字
2016/12/05 Javascript
JS实现的简单折叠展开动画效果示例
2018/04/28 Javascript
微信小程序网络封装(简单高效)
2018/08/06 Javascript
解决vue 使用setTimeout,离开当前路由setTimeout未销毁的问题
2020/07/21 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
[43:03]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
让 python 命令行也可以自动补全
2014/11/30 Python
解析Python编程中的包结构
2015/10/25 Python
Python实现二叉树结构与进行二叉树遍历的方法详解
2016/05/24 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
利用python画一颗心的方法示例
2017/01/31 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
2019/07/22 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
2020/04/02 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
HTML table 表格边框的实现思路
2019/10/12 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
Puccini乌克兰:购买行李箱、女士手袋网上商店
2020/08/06 全球购物
英文自荐信
2013/12/15 职场文书
党员自我对照检查材料
2014/08/19 职场文书
优秀党员先进材料
2014/12/18 职场文书
2015年七夕爱情寄语
2015/03/24 职场文书
MySQL新手入门进阶语句汇总
2022/09/23 MySQL