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 相关文章推荐
PHP一些有意思的小区别
Dec 06 PHP
php在线打包程序源码
Jul 27 PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 PHP
浅谈php安全性需要注意的几点事项
Jul 17 PHP
php中json_encode UTF-8中文乱码的更好解决方法
Sep 28 PHP
ThinkPHP中使用Ueditor富文本编辑器
Sep 02 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
Nov 25 PHP
php如何实现不借助IDE快速定位行数或者方法定义的文件和位置
Jan 17 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
PHP中一个有趣的preg_replace函数详解
Aug 15 PHP
Laravel 连接(Join)示例
Oct 16 PHP
php设计模式之状态模式实例分析【星际争霸游戏案例】
Mar 26 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编程开发“虚拟域名”系统
2006/10/09 PHP
php中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
js获取Get值的方法
2016/09/29 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
解决jQuery ajax动态新增节点无法触发点击事件的问题
2017/05/24 jQuery
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
详解Vue基于vue-quill-editor富文本编辑器使用心得
2019/01/03 Javascript
用Python实现web端用户登录和注册功能的教程
2015/04/30 Python
python通过post提交数据的方法
2015/05/06 Python
Python处理JSON数据并生成条形图
2016/08/05 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
Python数据可视化之画图
2019/01/15 Python
Python列表元素常见操作简单示例
2019/10/25 Python
pandas实现DataFrame显示最大行列,不省略显示实例
2019/12/26 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
如何在django中运行scrapy框架
2020/04/22 Python
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
Java如何格式化日期
2012/08/07 面试题
下面代码从性能上考虑,有什么问题
2015/04/03 面试题
制药工程专业应届生求职信
2013/09/24 职场文书
农村婚礼证婚词
2014/01/08 职场文书
安踏广告词改编版
2014/03/21 职场文书
大学专科自荐信
2014/06/17 职场文书
2016年社区服务活动总结
2016/04/06 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
php访问对象中的成员的实例方法
2021/11/17 PHP
vue中使用mockjs配置和使用方式
2022/04/06 Vue.js