カテゴリー
PHP

配列の要素を htmlspeciachars & htmlspeciachars_decode

htmlspecialchars/htmlspecialchars_decode でフォームへ表示するデータやポストされた文字列をhtmlエンティティにエンコードしたり、デコードしたり出来ます。配列の要素を行うには以下のようにすると出来ます。

<?php
$in1 = array('"', ''','&');
$in2 = array('<script>', '</script>');
$in = array(
        $in1,
        $in2
);
print_r(array_map('escapeHtml', $in1)); 
print_r(array_map('escapeHtml', $in2)); 
$out = array_map("escapeHtml", $in);
print_r($out);
print_r(array_map("decodeHtml", $out));

function escapeHtml($arg) {
    if (is_array($arg)) {
        return array_map('escapeHtml', $arg);
    } else {
        return htmlspecialchars($arg, ENT_QUOTES);
    }
}

function decodeHtml($arg) {
    if (is_array($arg)) {
        return array_map('decodeHtml', $arg);
    } else {
        return htmlspecialchars_decode($arg, ENT_QUOTES);
    }
}
?>

上記の出力結果:

Array
(
    [0] => &quot;
    [1] => '
    [2] => &amp;
)
Array
(
    [0] => &lt;script&gt;
    [1] => &lt;/script&gt;
)
Array
(
    [0] => Array
        (
            [0] => &quot;
            [1] => '
            [2] => &amp;
        )

    [1] => Array
        (
            [0] => &lt;script&gt;
            [1] => &lt;/script&gt;
        )

)
Array
(
    [0] => Array
        (
            [0] => "
            [1] => '
            [2] => &
        )

    [1] => Array
        (
            [0] => <script>
            [1] => </script>
        )

)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください