从多维输入数组中删除无效的UTF-8?

时间:2013-05-10 20:12:01

标签: php unicode utf-8

$ _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数组正在被截断。有关如何检查子数组中是否有效数据的任何建议,如果它们是完整的,请保持原样?我不确定他们被删除的确切原因。

1 个答案:

答案 0 :(得分:1)

试试吧

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