欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PHP函数import_request_variables()用法分析

程序员文章站 2024-04-02 08:25:40
本文实例分析了php函数import_request_variables()用法。分享给大家供大家参考,具体如下: import_request_variables 函数...

本文实例分析了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基本语法入门教程》、《php操作office文档技巧总结(包括word,excel,access,ppt)》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总

希望本文所述对大家php程序设计有所帮助。