5

htmlspecialchars を実行したい値の配列がありますが、次のような引数があります。

$param = htmlspecialchars($param, ENT_QUOTES);

問題は、htmlspecialchars を実行したい値の配列があることです。

$array = array_map('htmlspecialchars', $array);

ENT_QUOTES を array_map コールバックに渡す方法があるかどうか知りたいですか?

htmlspecialchars を使用する独自の関数をいつでも使用できますが、これを行う方法が既にあると便利です。


以下の答えの後、これが私の最終結果です:

$array = array_map('htmlspecialchars', $array, array_fill(0, count($array), ENT_QUOTES));

$array と同じ数の値で配列を埋めるだけで、ENT_QUOTE で埋められます。

4

2 に答える 2

3

の要素数と同じ数の要素をarray_map含む2 番目の配列をパラメータとして渡すと、これは機能するはずです。ENT_QUOTES$array

$quote_style = ENT_QUOTES;
$array = array('"',"'","''''''''''''\"");
$ent_quotes_array = array($quote_style, $quote_style, $quote_style);
$array = array_map('htmlspecialchars', $array, $ent_quotes_array);
print_r($array);

または、もう少しエレガントに:

$array = array('"',"'","''''''''''''\"");
$ent_quotes_array = array_fill(0, sizeof($array), ENT_QUOTES);
$array = array_map('htmlspecialchars', $array, $ent_quotes_array);
于 2011-12-10T05:59:55.133 に答える