html_entity_decode
HTML エンティティを対応する文字に変換する
&reftitle.description;
stringhtml_entity_decode
stringstring
intflagsENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
stringnullencoding&null;
html_entity_decode は
htmlentities の反対で、string
にある HTML エンティティを対応する文字に変換します。
厳密に言うと、この関数は次の二つの条件を満たすすべての (数値エンティティを含む)
エンティティをデコードします。それ以外のエンティティは、何も変換しません。
1) 選択したドキュメントタイプで必然的に有効になるもの。つまり
XML の場合には、DTD で定義されている名前付きエンティティはデコードしません。
2) 選択したエンコーディングに関連づけられている符号化文字集合に含まれる文字で、
選択したドキュメントタイプで許可されているもの。
&reftitle.parameters;
string
入力文字列。
flags
以下のフラグのビットマスクによる組み合わせで、クォートの扱いやドキュメントの形式を指定します。
デフォルトは ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401 です。
使用可能な flags 定数
定数名
説明
ENT_COMPAT
ダブルクォートを変換し、シングルクォートはそのままにします。
ENT_QUOTES
ダブルクォート、シングルクォートの両方を変換します。
ENT_NOQUOTES
ダブルクォート、シングルクォートの両方とも変換しません。
ENT_SUBSTITUTE
無効な符号単位シーケンスを含む文字列を渡したときに、
空の文字列を返すのではなく Unicode の置換文字に置き換えます。
UTF-8 の場合は U+FFFD、それ以外の場合は &#FFFD; となります。
ENT_HTML401
コードを HTML 4.01 として処理します。
ENT_XML1
コードを XML 1 として処理します。
ENT_XHTML
コードを XHTML として処理します。
ENT_HTML5
コードを HTML 5 として処理します。
encoding
&strings.parameter.encoding;
&reference.strings.charsets;
&reftitle.returnvalues;
デコードされた文字列を返します。
&reftitle.changelog;
&Version;
&Description;
8.1.0
flags のデフォルト値が
ENT_COMPAT から
ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401
に変更されました。
8.0.0
encoding は、nullable になりました。
&reftitle.examples;
HTML エンティティのデコード
dog now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a, PHP_EOL; // I'll "walk" the <b>dog</b> now
echo $b, PHP_EOL; // I'll "walk" the dog now
?>
]]>
&reftitle.notes;
trim(html_entity_decode(' ')); の結果が空の文字列に
ならないことを疑問に思う人もいるでしょう。なぜそうなるのかというと、
デフォルトのエンコーディング ISO-8859-1 では
' ' エンティティが ASCII コード 32 (これは
trim で取り除かれる) ではなく
ASCII コード 160 (0xa0) に変換されるからです。
&reftitle.seealso;
htmlentities
htmlspecialchars
get_html_translation_table
urldecode