如何在数组对象上运行PHP函数htmlspecialchars()?PHP:如何在数组数组上执行htmlspecialchar()?
我有以下代码:
$result_set = Array
(
[0] => Array
(
[home_id] => 1
[address] => 4225 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 76798
)
[1] => Array
(
[home_id] => 8
[address] => 4229 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 75093
)
);
// this doesn't work since $result_set is an array of arrays and htmlspecialchars is expecting a string
htmlspecialchars($result_set, ENT_QUOTES, 'UTF-8'));
UPDATE:
请注意,即使有下面相当多的答案,他们没有一个阵列的工作-arrays。下面的答案只适用于简单的数组。
我试过以下,但它不工作:
array_walk_recursive($result_set, "htmlspecialchars", array(ENT_QUOTES,'UTF-8'))
我得到以下错误:htmlspecialchars() expects parameter 2 to be long, string given
更新2
当我尝试:
function cleanOutput(&$value) {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
print_r($result_set);
print('-------');
print_r(array_walk_recursive($result_set, "cleanOutput"));
我得到以下,不想要,输出:
Array
(
[0] => Array
(
[home_id] => 1
[address] => 4225 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 76798
)
[1] => Array
(
[home_id] => 8
[address] => 4229 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 75093
)
)
-------1
更新3
当我尝试:
function cleanOutput(&$value) {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
$result_set = Array
(
[0] => Array
(
[home_id] => 1
[address] => 4225 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 76798
)
[1] => Array
(
[home_id] => 8
[address] => 4229 Nasmyth Dr
[city] => Plano
[state] => TX
[zip] => 75093
)
);
$cleanedOutput = array();
foreach ($result_set as $rs) {
$cleaned[] = array_map("cleanOutput", $rs);
}
print_r($cleanedOutput);
我得到以下,不想要,结果:
{'homes' : []}
2010-01-04
TeddyR
+0
是什么'$ result_set'包含哪些内容? –
2010-01-04 22:25:13
+0
$ result_set是我查询结果数据库的数组 –
2010-01-04 22:26:45
+0
当你做了一个array_map('htmlspecialchars',$ result_set,array(ENT_QUOTES,'UTF-8'))时发生了什么?是与htmlspecialchars或array_map错误? –
2010-01-04 23:03:01