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 相关文章推荐
ob_start(),ob_start('ob_gzhandler')使用
Dec 25 PHP
PHP Mysql编程之高级技巧
Aug 27 PHP
PHP图片验证码制作实现分享(全)
May 10 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
十个PHP高级应用技巧果断收藏
Sep 25 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
php集成动态口令认证
Jul 21 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 23 PHP
如何在Mac上通过docker配置PHP开发环境
May 29 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
收音机术语解释
2021/03/01 无线电
在PHP中利用XML技术构造远程服务(上)
2006/10/09 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
php实现插入数组但不影响原有顺序的方法
2015/03/27 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
国外大牛IE版本检测!现在IE都到9了,IE检测代码
2012/01/04 Javascript
js查错流程归纳
2012/05/04 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
20行JS代码实现网页刮刮乐效果
2017/06/23 Javascript
原生JS上传大文件显示进度条 php上传文件代码
2020/03/27 Javascript
js读取本地文件的实例
2017/12/22 Javascript
CentOS7中源码编译安装NodeJS的完整步骤
2018/10/13 NodeJs
three.js实现圆柱体
2018/12/30 Javascript
实例讲解JavaScript预编译流程
2019/01/24 Javascript
vue如何截取字符串
2019/05/06 Javascript
世界上最短的数字判断js代码
2019/09/09 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
[02:21]2018完美盛典章节片——初心
2018/12/17 DOTA
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
python微信公众号之关键词自动回复
2018/06/15 Python
详解python3中zipfile模块用法
2018/06/18 Python
基于python实现简单日历
2018/07/28 Python
matplotlib实现热成像图colorbar和极坐标图的方法
2018/12/13 Python
python实现信号时域统计特征提取代码
2020/02/26 Python
SpringBoot首页设置解析(推荐)
2021/02/11 Python
css3实现wifi信号逐渐增强效果实例
2017/08/09 HTML / CSS
.NET remoting的两种通道是什么
2016/05/31 面试题
恒华伟业笔试面试题
2015/02/26 面试题
英语硕士生求职简历的自我评价
2013/10/15 职场文书
营业经理岗位职责
2013/11/10 职场文书
文明班集体申报材料
2014/05/23 职场文书
欢迎标语大全
2014/06/21 职场文书
六五普法宣传标语
2014/10/06 职场文书