Рекурсия, многомерный массив, пропустить все ключи и их значения через
function in($ms){
foreach ($ms as $k => $v)
$nn[$k] = htmlspecialchars($v, ENT_QUOTES,"UTF-8");
return $nn;
}
$nn = in([2,2]);
print_r($nn);
Передаю в функцию массив, через цикл проверяю каждое значение.
Вопрос в том, что если массив имеет следующий вид
[2,3,[5,2], ['test' =>'текст', ['m' => 42]]]
То есть не известно количество вложенных массивов, неизвестно что за ключ. Число или строка, так же не известен формат значения.
Как верно составить рекурсивную функцию, для того чтобы каждое значение и каждый ключ пропустить через 'strip_tags, htmlspecialchars, addslashes'. Для того, чтобы снизить уязвимость в данных местах.
Ответы (1 шт):
Автор решения: Borislav
→ Ссылка
$data = [...]; // your assocc array
array_walk_recursive($data, static function (&$node) {
if (is_string($node)) {
// prepare and process your string values by htmlspecialchars, etc.
//
// example:
$node = htmlspecialchars($node);
}
});