関数・クラス解説
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() において内部的に使用される変換テーブルを返します。
注意:
特殊文字はいくつかの方法でエンコードすることができます。 例えば、" は ", " もしくは " としてエンコードすることができます。 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) "
"
["!"]=>
string(6) "!"
["""]=>
string(6) """
["#"]=>
string(5) "#"
["$"]=>
string(8) "$"
["%"]=>
string(8) "%"
["&"]=>
string(5) "&"
["'"]=>
string(6) "'"
// ...
}
参考
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール