get_html_translation_table

get_html_translation_table関数:サニタイズ用の変換テーブルを取得する

使い方

$table = get_html_translation_table();

サニタイズとは、HTML上に表示する動的な文字列をHTMLタグやスクリプトとして機能しないように一定の文字をエスケープシーケンスに置き換えることです。
要は掲示板なんかで、投稿されたテキストをそのまま表示すると悪意のあるスクリプトが実行されてしまったり(クロスサイトスクリプティング)することを防ぐために行うことです。

でも、どういう文字が変換されるんだろうと疑問に思ったあなたにはこの関数をご紹介しましょう。
気にならない人はもうこの記事読まなくてもいいかも・・・

この関数はWebプログラマが必ずと言っていいほど使う機会がある、htmlspecialchars関数やhtmlentities関数の変換テーブルを配列で返してくれます。
もうこうなったら百聞は一見にしかずなので、実行結果をお見せしましょう。

get_html_translation_table()の戻り値

array (
  '"' => '"',
  '<' => '&lt;',
  '>' => '&gt;',
  '&' => '&amp;',
)

第1引数には、変換テーブルの種類を定数で指定することができます。

定数 意味
HTML_SPECIALCHARS htmlspecialchars関数の変換テーブル
HTML_ENTITIES htmlentities関数の変換テーブル

それぞれの定数でどんな変換テーブルになっているのかを分かりやすく表示してみました。

htmlspecialchars関数の変換テーブル

htmlspecialchars_trans_table

テキストで見たい方はコチラ

htmlentities関数の変換テーブル

get_html_translation_table

テキストで見たい方はコチラ

ここまで書いておきながら、この関数については細かく紹介するのが面倒になったのでここまでで手抜きします。。。
もう少し詳しく知りたい方は公式サイトをご覧ください(笑)

使いどころ

正直言って通常の業務とかで使うことはまずないでしょう。
だって知ってるし。。。変換テーブルを見る必要ってよっぽどのことが無い限り無いですから。
そのよっぽどのことってのはどういう場合のことなのか私にもよく分かってませんが。

一応この関数知ってたらふーんとなるくらいの認識で問題ないかもしれません。

公式サイト

http://www.php.net/manual/ja/function.get-html-translation-table.php