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 相关文章推荐
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php 无限级分类学习参考之对ecshop无限级分类的解析 带详细注释
Mar 23 PHP
php expects parameter 1 to be resource, array given 错误
Mar 23 PHP
PHP判断远程url是否有效的几种方法小结
Oct 08 PHP
php页面消耗内存过大的处理办法
Mar 18 PHP
奉献出一个封装的curl函数 便于调用(抓数据专用)
Jul 22 PHP
PHP生成sitemap.xml地图函数
Nov 13 PHP
Yii框架数据模型的验证规则rules()被执行的方法
Dec 02 PHP
php获取给定日期相差天数的方法分析
Feb 20 PHP
php使用yield对性能提升的测试实例分析
Sep 19 PHP
php设计模式之组合模式实例详解【星际争霸游戏案例】
Mar 27 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Mar 09 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
星际玩家的三大定律
2020/03/04 星际争霸
COM in PHP (winows only)
2006/10/09 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
javascript 冒号 使用说明
2009/06/06 Javascript
extjs 初始化checkboxgroup值的代码
2011/09/21 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
javascript+jQuery实现360开机时间显示效果
2017/11/03 jQuery
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
详解NodeJS Https HSM双向认证实现
2019/03/12 NodeJs
详解微信小程序实现跑马灯效果(附完整代码)
2019/04/29 Javascript
Vue 实现监听窗口关闭事件,并在窗口关闭前发送请求
2020/09/01 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
[01:02:48]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 LGD vs OG
2018/04/02 DOTA
Python作用域用法实例详解
2016/03/15 Python
Python探索之创建二叉树
2017/10/25 Python
基于Django URL传参 FORM表单传数据 get post的用法实例
2018/05/28 Python
python 定义n个变量方法 (变量声明自动化)
2018/11/10 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
pytorch标签转onehot形式实例
2020/01/02 Python
使用Tensorflow将自己的数据分割成batch训练实例
2020/01/20 Python
美国嘻哈首饰购物网站:Hip Hop Bling
2016/12/30 全球购物
PHP开发的一般流程
2013/08/13 面试题
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
毕业研究生的自我鉴定
2013/11/30 职场文书
优秀党支部事迹材料
2014/01/14 职场文书
计划生育证明书写要求
2014/09/17 职场文书
干部作风整顿自我剖析材料和整改措施
2014/09/18 职场文书
社区务虚会发言材料
2014/10/20 职场文书
巾帼文明岗事迹材料
2014/12/24 职场文书