设置每个阵列的功能

时间:2010-11-29 20:26:10

标签: php arrays function

现在我用:

<?php
$_POST = array_map(mysql_real_escape_string, $_POST);
$_GET = array_map(mysql_real_escape_string, $_GET);
$_COOKIE = array_map(mysql_real_escape_string, $_COOKIE);
$_REQUEST = array_map(mysql_real_escape_string, $_REQUEST); 

但如果$ _POST有多个数组($ _POST ['s'] [1]),那么它不起作用。如何为每个阵列设置功能?

2 个答案:

答案 0 :(得分:1)

<?php

function escape_recursive($item) {
    return is_array($item) ?
        array_map("escape_recursive", $item) :
        mysql_real_escape_string($item);
}

$_POST = array_map("escape_recursive", $_POST);
// etc...

?>

但请参阅DampeS8N的评论 - 如果你这样做,你的安全性就会出错......

答案 1 :(得分:0)

您希望使用递归函数来解决您的问题:

function recursive_array_map($input){
   if(is_array($input)){
        return array_map('recursive_array_map',$input);
   }

   return array_map(mysql_real_escape_string, $input);
} 

$_POST = recursive_array_map(mysql_real_escape_string, $_POST);

我刚才写了这个,所以不确定它是否确实有效;) 快点去吧!