Ok。引数を取り、危険な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 文字ですべての値を取得できるようにすることでした。したがって、明らかに、配列内のキーはデータベース フィールドの名前になり、現時点で私の関数はこれらを数値に置き換えています。
そうです、配列キーがそのままの状態で関数に渡された同じ引数を戻す必要があります (配列が渡された場合)。
それが理にかなっていることを願って、提案をいただければ幸いです。