関数・クラス解説

get_html_translation_table

version:PHP 4, PHP 5, PHP 7 (公式)

htmlspecialchars() および htmlentities() で用いられるエンティティの変換テーブルを配列で返す

フォーマット

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

パラメータ

int $table = HTML_SPECIALCHARS
どちらのテーブルを返すか。指定は以下の定数で行える。


HTML_ENTITIES
変換可能な全ての文字をHTMLエンティティに変換

HTML_SPECIALCHARS
特殊文字のみをHTMLエンティティに変換


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

変換する特殊文字の種類
ENT_COMPAT テーブルにダブルクォートのエンティティを含めるが、シングルクォートは含ない
ENT_QUOTES テーブルにダブルクォート、シングルクォートの両方を含める
ENT_NOQUOTES テーブルにダブルクォート、シングルクォートのどちらも含めない。
ENT_HTML401 HTML 4.01 用のテーブル。
ENT_XML1 XML 1 用のテーブル。
ENT_XHTML XHTML 用のテーブル。
ENT_HTML5 HTML 5 用のテーブル。

string $encoding =[PHP 5.4.0 以前]ISO-8859-1 [PHP 5.4.0 以降]UTF-8
使用する文字エンコーディング。サポートする文字セットは以下を参照してください。


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

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


返り値 array
変換テーブルの内容を配列として返却。各要素の変換前の文字がキー、そしてエンティティが値となる。

解説

この関数は、htmlspecialchars()またはhtmlentities()でエンティティ変換に使用される変換テーブルを、配列の形式で返します。
これは htmlspecialchars() や htmlentities() を利用する際、変換されるエンティティを確認したり、flags によってどの文字が変換対象となるのかを確認できます。返す値は、htmlspecialchars() や htmlentities() で使っている形式のものだけとなります。

記述サンプル

//PHP 7.4.6で実行

//HTML_SPECIALCHARS を指定か、あるいは引数を省略して実行
$result = get_html_translation_table(HTML_SPECIALCHARS);
print_r($result);

//以下の結果から、htmlspecialchars() で変換した場合、" が " に、& が & などに変換されるを確認できる
Array
(
 ["] => "
 [&] => &
 [<] => <
 [>] => >
)

/* ----------------------------- */

//HTML_ENTITIES を指定して実行
$result = get_html_translation_table(HTML_ENTITIES);
print_r($result);
//htmlentities() で変換した場合の変換テーブルを確認できる
Array
(
 ["] => "
 [&] => &
 [<] => <
 ~省略~
 [♥] => ♥
 [♦] => ♦
)

/* ----------------------------- */

//第2引数にENT_NOQUOTES(シングル・ダブルクォートを含めない)を指定する
$result = get_html_translation_table(HTML_SPECIALCHARS, ENT_NOQUOTES);
print_r($result);
//htmlspecialchars() で変換した場合、クォートを無視した内容のテーブルが確認できる
Array
(
 [&] => &
 [<] => <
 [>] => >
)

参考リンク

html_entity_decode HTMLエンティティを元の文字にデコードする
htmlentities 適用可能な文字を全て HTML エンティティに変換する
htmlspecialchars 特殊な文字をHTMLエンティティに変換する

タグ

html エンティティ String 文字列


公式リファレンス

書式

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

説明

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

注意:

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

パラメータ

table
どちらのテーブルを返すか。HTML_ENTITIES あるいは HTML_SPECIALCHARS。
flags
以下のフラグのビットマスクによる組み合わせで、 どのクォートをテーブルに含めるのか、そしてどのドキュメント形式用のテーブルにするのかを指定します。 デフォルトは ENT_COMPAT | ENT_HTML401 です。
使用可能な flags 定数
定数名 説明
ENT_COMPAT テーブルにダブルクォート用のエンティティを含めますが、シングルクォート用は含めません。
ENT_QUOTES テーブルにダブルクォート用、シングルクォート用の両方のエンティティを含めます。
ENT_NOQUOTES テーブルにダブルクォート用、シングルクォート用のどちらのエンティティも含めません。
ENT_HTML401 HTML 4.01 用のテーブル。
ENT_XML1 XML 1 用のテーブル。
ENT_XHTML XHTML 用のテーブル。
ENT_HTML5 HTML 5 用のテーブル。
encoding
使用するエンコーディング。省略した場合のデフォルト値は、 PHP 5.4.0 より前のバージョンでは ISO-8859-1、そして PHP 5.4.0 以降では UTF-8 となります。 以下の文字セットをサポートします。
サポートする文字セット
文字セット エイリアス 説明
ISO-8859-1 ISO8859-1 西欧、Latin-1
ISO-8859-5 ISO8859-5 ほとんど使われないキリル文字セット (Latin/Cyrillic)。
ISO-8859-15 ISO8859-15 西欧、Latin-9 。Latin-1(ISO-8859-1) に欠けている ユーロ記号やフランス・フィンランドの文字を追加したもの。
UTF-8   ASCII 互換のマルチバイト 8 ビット Unicode 。
cp866 ibm866, 866 DOS 固有のキリル文字セット。
cp1251 Windows-1251, win-1251, 1251 Windows 固有のキリル文字セット。
cp1252 Windows-1252, 1252 西欧のための Windows 固有の文字セット。
KOI8-R koi8-ru, koi8r ロシア語。
BIG5 950 繁体字中国語。主に台湾で使用されます。
GB2312 936 簡体字中国語。国の標準文字セットです。
BIG5-HKSCS   Big5 に香港の拡張を含めたもの。繁体字中国語。
Shift_JIS SJIS, SJIS-win, cp932, 932 日本語。
EUC-JP EUCJP, eucJP-win 日本語。
MacRoman   Mac OS で使われる文字セット。
''   空文字列を指定すると、 スクリプトのエンコーディング (Zend multibyte)、 default_charset、 そして現在のロケール (nl_langinfo() および setlocale() を参照ください) の順でエンコーディングを検出します。 この方法はおすすめしません。
注意: これら以外の文字セットは理解できません。 かわりにデフォルトのエンコーディングを使用し、警告を発生させます。

返値

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

サンプル

例1 変換テーブルの例

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;" // ... }

参考

  • htmlspecialchars() - 特殊文字を HTML エンティティに変換する
  • htmlentities() - 適用可能な文字を全て HTML エンティティに変換する
  • html_entity_decode() - HTML エンティティを対応する文字に変換する
  • ワード検索


    ※入力キーワードが、関数名・説明文・タグに含まれるものを検索

    関数名アルファベット別

    A B C D E F G H I J
    K L M N O P Q R S T
    U V W X Y Z _

    最終更新一覧

    stristr
     大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却

    stripslashes
     バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く

    stripos
     大文字小文字を区別せずに文字列が最初に現れる位置を取得する

    stripcslashes
     addcslashes() でクォートされた文字列をアンクォートする

    strip_tags
     文字列から HTML と PHP のタグを除去して返却

    strcspn
     指定した文字が最初に現れる位置を調べる

    strcoll
     ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する

    strcmp
     2つの文字列を比較し同じか(あるいは大小)を判定する

    strchr
     strstr() のエイリアス

    strcasecmp
     2つの文字列を比較(大文字小文字を区別せず同じとみなす)

    カテゴリー一覧

    PHP の振る舞いの変更
    音声フォーマットの操作
    認証サービス
    コマンドライン関連
    圧縮およびアーカイブ
    暗号
    データベース関連
    日付および時刻関連
    ファイルシステム
    自然言語および文字エンコーディング
    画像処理および作成
    メール関連
    数学
    テキスト以外の MIME 型
    プロセス制御
    その他の基本モジュール
    その他のサービス
    検索エンジン用の拡張モジュール
    サーバー固有のモジュール
    セッション関連
    テキスト処理
    変数・データ型関連
    ウェブサービス
    Windows 用のモジュール
    XML 操作
    GUI用の拡張モジュール