行。我编写了一个简单的(ish)函数来获取一个参数并返回相同的参数,并将危险的 html 字符替换为它们的字符实体。
该函数可以将字符串、数组或 2D 数组作为参数 - 不支持 3d 数组或更多。
功能如下:
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 字符取回所有值。因此,显然,数组中的键将是数据库字段的名称,而我目前的功能是将它们替换为数值。
所以是的,我需要取回传递给函数的相同参数,数组键仍然完好无损(如果传递了一个数组)。
希望这是有道理的,建议表示赞赏。