0

$_POST 数组可以是多维的。我有删除无效 UTF 的代码,但也完全删除了子数组。

运行此代码:

print_r($_POST);      
$UTF8_Input = array_map('_StripInvalidUTF8', $_POST);
print_r($UTF8_Input);

function _StripInvalidUTF8($str){
   return iconv('UTF-8', 'UTF-8//IGNORE', $str);      
}

产生:

//$_POST:
Array
(
    [Quantity] => 1
    [Options] => Array
        (
            [84] => 585
        )    
)


// $UTF8_Input:
Array
(
    [Quantity] => 1
    [Options] => 
)

Options 数组被截断。关于如何检查子数组的有效数据并保持它们完好无损的任何建议?我不确定它们被删除的确切原因。

4

1 回答 1

1

试试看

function _StripInvalidUTF8($str){
    if(is_array($str)) return array_map('_StripInvalidUTF8', $str);
        return iconv('UTF-8', 'UTF-8//IGNORE', $str);      
}
于 2013-05-10T20:16:39.893 回答