htmlspecialcharsの変換条件を増やす

htmlspecialcharsで変換される内容は、get_html_translation_tableで得られる変換テーブルで取得できる。以下はENT_QUOTESの場合。


$table = get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES);
var_dump($table);

array(5) {
  ["""]=>
  string(6) """
  ["&"]=>
  string(5) "&"
  ["'"]=>
  string(6) "'"
  ["<"]=>
  string(4) "<"
  [">"]=>
  string(4) ">"
}

ここに条件を加えると、htmlspecialcharsの変換条件を増やすことができる。

例えばENT_QUOTESをオプションに与えたとき、空白文字もエンコードしたい場合は以下になる。


$h = htmlspecialchars('

hello world

', ENT_QUOTES, "UTF-8"); $table = get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES); $table[' '] = '&nbsp;'; $encode = strtr($h, $table); // string(84) "&lt;p id=&quot;test&quot;&gt;hello&nbsp;world&lt;/p&gt;" var_dump($encode);

このように挙動を多少変えることができる。

コメントする




twenty − 15 =