Хорошо. Я написал простую (ish) функцию для получения аргумента и возврата того же аргумента с заменой символов опасности html их символьными сущностями.
Функция может принимать в качестве аргумента либо строку, либо массив, либо двумерный массив - трехмерные массивы или более не поддерживаются.
Функция выглядит следующим образом:
public function html_safe($input)
{
if(is_array($input)) //array was passed
{
$escaped_array = array();
foreach($input as $in)
{
if(is_array($in)) //another array inside the initial array found
{
$inner_array = array();
foreach($in as $i)
{
$inner_array[] = htmlspecialchars($i);
}
$escaped_array[] = $inner_array;
}
else
$escaped_array[] = htmlspecialchars($in);
}
return $escaped_array;
}
else // string
return htmlspecialchars($input);
}
Эта функция работает, но проблема в том, что мне нужно поддерживать ключи массива исходного массива.
Цель этой функции - сделать так, чтобы мы могли буквально передавать набор результатов из запроса к базе данных и возвращать все значения с безопасными символами HTML. Очевидно, что ключи в массиве будут именами полей базы данных, и моя функция в настоящее время заменяет их числовыми значениями.
Так что да, мне нужно вернуть тот же аргумент, переданный функции, с ключами массива, которые еще не повреждены (если массив был передан).
Надеюсь, что это имеет смысл, предложения приветствуются.