get_html_translation_table

(PHP 4, PHP 5, PHP 7, PHP 8)

get_html_translation_tablehtmlspecialchars() および htmlentities() で使用される変換テーブルを返す

説明

get_html_translation_table(int$table = HTML_SPECIALCHARS, int$flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401, string$encoding = "UTF-8"): array

get_html_translation_table() は、 htmlspecialchars() および htmlentities() において内部的に使用される変換テーブルを返します。

注意:

特殊文字はいくつかの方法でエンコードすることができます。 例えば、"", " もしくは &#x22 としてエンコードすることができます。 get_html_translation_table() の返す値は、 htmlspecialchars()htmlentities() で使っている形式だけです。

パラメータ

table

どちらのテーブルを返すか。HTML_ENTITIES あるいは HTML_SPECIALCHARS

flags

以下のフラグのビットマスクによる組み合わせで、 どのクォートをテーブルに含めるのか、そしてどのドキュメント形式用のテーブルにするのかを指定します。 デフォルトは ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 です。

使用可能な flags 定数
定数名説明
ENT_COMPATテーブルにダブルクォート用のエンティティを含めますが、シングルクォート用は含めません。
ENT_QUOTESテーブルにダブルクォート用、シングルクォート用の両方のエンティティを含めます。
ENT_NOQUOTESテーブルにダブルクォート用、シングルクォート用のどちらのエンティティも含めません。
ENT_SUBSTITUTE 無効な符号単位シーケンスを含む文字列を渡したときに、 空の文字列を返すのではなく Unicode の置換文字に置き換えます。 UTF-8 の場合は U+FFFD、それ以外の場合は &#FFFD; となります。
ENT_HTML401HTML 4.01 用のテーブル。
ENT_XML1XML 1 用のテーブル。
ENT_XHTMLXHTML 用のテーブル。
ENT_HTML5HTML 5 用のテーブル。
encoding

使用するエンコーディング。省略した場合のデフォルト値は UTF-8 となります。

以下の文字セットをサポートします。

サポートする文字セット
文字セットエイリアス説明
ISO-8859-1ISO8859-1 西欧、Latin-1
ISO-8859-5ISO8859-5 ほとんど使われないキリル文字セット (Latin/Cyrillic)。
ISO-8859-15ISO8859-15 西欧、Latin-9 。Latin-1(ISO-8859-1) に欠けている ユーロ記号やフランス・フィンランドの文字を追加したもの。
UTF-8  ASCII 互換のマルチバイト 8 ビット Unicode 。
cp866ibm866, 866 DOS 固有のキリル文字セット。
cp1251Windows-1251, win-1251, 1251 Windows 固有のキリル文字セット。
cp1252Windows-1252, 1252 西欧のための Windows 固有の文字セット。
KOI8-Rkoi8-ru, koi8r ロシア語。
BIG5950 繁体字中国語。主に台湾で使用されます。
GB2312936 簡体字中国語。国の標準文字セットです。
BIG5-HKSCS  Big5 に香港の拡張を含めたもの。繁体字中国語。
Shift_JISSJIS, SJIS-win, cp932, 932 日本語。
EUC-JPEUCJP, eucJP-win 日本語。
MacRoman  Mac OS で使われる文字セット。
''  空文字列を指定すると、 スクリプトのエンコーディング (Zend multibyte)、 default_charset、 そして現在のロケール (nl_langinfo() および setlocale() を参照ください) の順でエンコーディングを検出します。 この方法はおすすめしません。

注意: これら以外の文字セットは理解できません。 かわりにデフォルトのエンコーディングを使用し、警告を発生させます。

戻り値

変換テーブルを配列で返します。元の文字がキー、そしてエンティティが値となります。

変更履歴

バージョン説明
8.1.0flags のデフォルト値が ENT_COMPAT から ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 に変更されました。

例1 変換テーブルの例

<?php
var_dump
(get_html_translation_table(HTML_ENTITIES, ENT_QUOTES | ENT_HTML5));
?>

上の例の出力は、 たとえば以下のようになります。

array(1510) { [" "]=> string(9) "&NewLine;" ["!"]=> string(6) "&excl;" ["""]=> string(6) "&quot;" ["#"]=> string(5) "&num;" ["$"]=> string(8) "&dollar;" ["%"]=> string(8) "&percnt;" ["&"]=> string(5) "&amp;" ["'"]=> string(6) "&apos;"}

参考

To Top