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 中的面向对象编程:通向大型 PHP 工程的办法
Dec 03 PHP
php实现的遍历文件夹下所有文件,编辑删除
Jan 05 PHP
PHP实现提取一个图像文件并在浏览器上显示的代码
Oct 06 PHP
php-fpm配置详解
Feb 12 PHP
php快递单号查询接口使用示例
May 05 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php+ajax实现无刷新分页
Nov 18 PHP
php微信开发之百度天气预报
Nov 18 PHP
浅析PHP7的多进程及实例源码
Apr 14 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
Feb 16 PHP
PHP终止脚本运行三种实现方法详解
Sep 01 PHP
PHP实现两种排课方式
Jun 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.MVC的模板标签系统(五)
2006/09/05 PHP
将PHP作为Shell脚本语言使用
2006/10/09 PHP
隐性调用php程序的方法
2009/03/09 PHP
php设计模式 DAO(数据访问对象模式)
2011/06/26 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
php实现socket推送技术的示例
2017/12/20 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
JavaScript实现将UPC转换成ISBN的方法
2015/05/26 Javascript
如何使用jQuery技术开发ios风格的页面导航菜单
2015/07/29 Javascript
jQuery的each循环用法简单示例
2016/06/12 Javascript
Node.js的Mongodb使用实例
2016/12/30 Javascript
JS判断Android、iOS或浏览器的多种方法(四种方法)
2017/06/29 Javascript
webpack配置sass模块的加载的方法
2017/07/30 Javascript
微信小程序自定义toast实现方法详解【附demo源码下载】
2017/11/28 Javascript
使用Vue如何写一个双向数据绑定(面试常见)
2018/04/20 Javascript
echarts设置图例颜色和地图底色的方法实例
2018/08/01 Javascript
NodeJS 实现多语言的示例代码
2018/09/11 NodeJs
JS/jQuery实现简单的开关灯效果【案例】
2019/02/19 jQuery
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
解析python 中/ 和 % 和 //(地板除)
2020/06/28 Python
python计算auc的方法
2020/09/09 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
python中pow函数用法及功能说明
2020/12/04 Python
移动端适配 使px自动转换rem
2019/08/26 HTML / CSS
AmazeUI 输入框组的示例代码
2020/08/14 HTML / CSS
美国女孩服装购物网站:Justice
2017/03/04 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
Java和Javasciprt的区别
2012/09/02 面试题
大学生作弊检讨书
2014/02/19 职场文书
2014信息公开实施方案
2014/02/22 职场文书
工作违纪检讨书范文
2015/01/26 职场文书
红色经典电影观后感
2015/06/18 职场文书
「海贼王」112.9万粉丝纪念图标公布
2022/03/21 日漫