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制作静态网站的模板框架
Oct 09 PHP
用PHP实现文件上传二法
Oct 09 PHP
第三节--定义一个类
Nov 16 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
php学习笔记之面向对象编程
Dec 29 PHP
利用phpexcel把excel导入数据库和数据库导出excel实现
Jan 09 PHP
set_exception_handler函数在ThinkPHP中的用法
Oct 31 PHP
ThinkPHP中html:list标签用法分析
Jan 09 PHP
PHP session 会话处理函数
Jun 06 PHP
Ajax请求PHP后台接口返回信息的实例代码
Aug 21 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
Apr 12 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实现xml与json之间的相互转换功能实例
2016/07/07 PHP
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
JavaScript知识点整理
2015/12/09 Javascript
解析Node.js基于模块和包的代码部署方式
2016/02/16 Javascript
jQuery图片查看插件Magnify开发详解
2017/12/25 jQuery
微信小程序switch开关选择器使用详解
2018/01/31 Javascript
JavaScript学习教程之cookie与webstorage
2019/06/23 Javascript
cordova+vue+webapp使用html5获取地理位置的方法
2019/07/06 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
python的id()函数解密过程
2012/12/25 Python
python 将字符串转换成字典dict
2013/03/24 Python
Python如何读取MySQL数据库表数据
2017/03/11 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
Python语言描述KNN算法与Kd树
2017/12/13 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
HTML5 直播疯狂点赞动画实现代码 附源码
2020/04/14 HTML / CSS
英国高档时尚男装购物网站:MR PORTER
2016/08/09 全球购物
英国轻奢珠宝品牌:Astley Clarke
2016/12/18 全球购物
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
爱尔兰电子产品购物网站:Komplett.ie
2018/04/04 全球购物
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
英国户外服装、鞋类和设备的领先零售商:Millets
2020/10/12 全球购物
五型班组建设方案
2014/02/10 职场文书
大四学生找工作的自荐信
2014/03/27 职场文书
广播体操比赛口号
2014/06/10 职场文书
现场活动策划方案
2014/08/22 职场文书
档案管理员岗位职责
2015/02/12 职场文书
《风筝》教学反思
2016/02/23 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书