Nasıl dizi nesneleri bir dizi üzerinde PHP işlevi htmlspecialchars()
çalıştırabilirim?
Ben aşağıdaki kodu vardır:
$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:
Aşağıda epeyce cevaplar var olsa bile, bunların hiçbiri bir dizi-of-diziler için çalışmak olduğunu unutmayınız. Aşağıdaki cevaplar sadece basit diziler için çalışır.
Ben aşağıdaki denedim ama çalışmıyor:
array_walk_recursive($result_set, "htmlspecialchars", array(ENT_QUOTES,'UTF-8'))
Ben şu hatayı alıyorum: htmlspecialchars() expects parameter 2 to be long, string given
UPDATE 2
Ben çalıştığınızda:
function cleanOutput(&$value) {
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
print_r($result_set);
print('-------');
print_r(array_walk_recursive($result_set, "cleanOutput"));
Aşağıdaki, istenmeyen, çıktı almak:
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
UPDATE 3
Ben çalıştığınızda:
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);
Aşağıdaki, istenmeyen, sonuçlar alırsınız:
{'homes' : []}