htmlspecialchars はタグをサニタイズしてくれる非常に便利な関数ですが、この関数は配列にかけることは出来ません。
そこで、
array_mapです
$array = array("<b>a</b>","<span>name</span>");
$array2 = array_map('htmlspecialchars', $array);
(注意) このままでは問題があります。ページ下部を参照。
これにより、$array で渡されたデータに対してすべて htmlspecialchars をかけた配列を $array2 に入れることができます。
array_mapの引数に使えるのは htmlspecialchars だけでなく、自分で定義した関数なども適用できます。
htmlspecialchars では、普通に使った場合はシングルクオートをエスケープしてくれないので、次のように使うのがセキュリティ的によいでしょう。
<?php
function myhtmlspecialchars($string) {
if (is_array($string)) {
return array_map("myhtmlspecialchars", $string);
} else {
return htmlspecialchars($string, ENT_QUOTES);
}
}
?>
スポンサードリンク
PHPサンプル集