任何人都可以解释以下PHP代码吗?
function get_param($param_name, $param_type = 0)
{
global $HTTP_POST_VARS, $HTTP_GET_VARS;
$param_value = "";
if (isset($_POST)) {
if (isset($_POST[$param_name]) && $param_type != GET)
$param_value = $_POST[$param_name];
elseif (isset($_GET[$param_name]) && $param_type != POST)
$param_value = $_GET[$param_name];
} else {
if (isset($HTTP_POST_VARS[$param_name]) && $param_type != GET)
$param_value = $HTTP_POST_VARS[$param_name];
elseif (isset($HTTP_GET_VARS[$param_name]) && $param_type != POST)
$param_value = $HTTP_GET_VARS[$param_name];
}
return strip($param_value);
}
function strip($value)
{
if (get_magic_quotes_gpc() == 0) {
return $value;
} else {
return stripslashes($value);
}
}
更新
它的用法如下:
$xml = get_param('xml');
答案 0 :(得分:4)
代码从get和post数据数组中获取值。它还会在启用了魔术引号的php安装上删除斜杠。看起来该函数是为了向后兼容旧版本的PHP。除非您需要支持旧版本的PHP,否则我不会使用它。
您无需对此进行任何更改即可在PHP 5中运行,但我只需执行以下操作: 获取数据:
if(isset($_GET['param_name'])){
// What ever you want to do with the value
}
对于发布数据:
if(isset($_POST['param_name'])){
// What ever you want to do with the value
}
您还应该阅读Magic Quotes因为它在PHP 5.3.0之前没有被弃用,您可能需要关注它。
更新后的功能也可以写成:
function get_param($param_name, $param_type = 0)
{
$param_value = "";
if (isset($_POST[$param_name]) && $param_type != GET){
$param_value = $_POST[$param_name];
}
elseif (isset($_GET[$param_name]) && $param_type != POST){
$param_value = $_GET[$param_name];
}
return strip($param_value);
}
可以单独留下条带。
答案 1 :(得分:2)
function get_param($param_name, $param_type = 0)
这将返回一个参数值,具有给定类型POST或GET,是可选的。该值被剥离了斜杠。
function strip($value)
返回没有斜杠的参数。
我同意其他评论,即此代码是在2003年之前编写的,不应使用,除非支持旧代码。
答案 2 :(得分:2)
看起来像是确保你获得正确的GET / POST变量的一些疯狂的方法。 来自get_param()的大多数代码似乎是一种使代码几乎适用于任何php版本的方法,因为它使用的是遗留方法,你应该看一下PHP Manual about _GET / _ POST
答案 3 :(得分:1)
代码是一个函数,它接受参数的名称($param_name
)和预期在(GET或POST)中找到的HTTP请求类型,然后查看当前的$_GET
和{ {1}})和已弃用($_POST
和$HTTP_GET_VARS
)请求变量数组以获取与该名称匹配的值。在它返回之前,它会尝试从它找到的值中删除额外的斜杠。
例如,如果我传递了这个HTTP请求:
$HTTP_POST_VARS
然后运行函数
http://www.example.com/explain_function.php?key=value
它将返回“价值”。
答案 4 :(得分:0)
似乎正在尝试根据参数名称从查询字符串中提取值。它首先检查$ _POST变量是否有效,如果没有,检查$ HTTP_POST_VARS。如果其中任何一个有效,它将返回名称为$ param_name的值。例如,如果$ param_name =“foo”,它将检查$ _POST [“foo”]。