Хорошо. Я написал простую (ish) функцию, чтобы принять аргумент и вернуть тот же аргумент с заменой символов html на свои объекты символов.Как вы копируете массив, сохраняя одни и те же ключи?
Функция может принимать в качестве аргумента строку, массив или 2D-массив - трехмерные массивы или больше не поддерживаются.
Функция выглядит следующим образом:
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-символами. Очевидно, поэтому ключи в массиве будут именами полей базы данных, и моя функция в данный момент заменяет их числовыми значениями.
Так что да, мне нужно вернуть тот же аргумент, который передается функции с оставшимися массивами ключей (если массив был передан).
Надеюсь, что имеет смысл, предложения оценены.
Эй это работает локально, но когда я развертывается в среде Dev я получил следующее сообщение об ошибке: Предупреждение: array_map() [function.array -map]: Первый аргумент «html_safe» должен быть либо NULL, либо действительным обратным вызовом в ... \ www \ include \ security.php в строке 16 – Evernoob
@Evernoob: weird, версия PHP такая же? –