html_entity_decode
HTML エンティティを適切な文字に変換する
&reftitle.description;
stringhtml_entity_decode
stringstring
intflagsENT_COMPAT | ENT_HTML401
stringencoding'UTF-8'
html_entity_decode は
htmlentities の反対で、string
にあるすべての HTML エンティティを適切な文字に変換します。
厳密に言うと、この関数は次の二つの条件を満たすすべての (数値エンティティを含む)
エンティティをデコードします。それ以外のエンティティは、何も変換しません。
1) 選択したドキュメントタイプで必然的に有効になるもの。つまり
XML の場合には、DTD で定義されている名前付きエンティティはデコードしません。
2) 選択したエンコーディングに関連づけられている符号化文字集合に含まれる文字で、
選択したドキュメントタイプで許可されているもの。
&reftitle.parameters;
string
入力文字列。
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 となります。
&reference.strings.charsets;
&reftitle.returnvalues;
デコードされた文字列を返します。
&reftitle.changelog;
&Version;
&Description;
5.3.3
デフォルトのエンコーディングが ISO-8859-1 から UTF-8 に変わりました。
5.4.0
定数 ENT_HTML401、ENT_XML1、
ENT_XHTML および ENT_HTML5 が追加されました。
5.0.0
マルチバイトエンコーディングをサポートするようになりました。
&reftitle.examples;
HTML エンティティのデコード
dog now";
$a = htmlentities($orig);
$b = html_entity_decode($a);
echo $a; // I'll "walk" the <b>dog</b> now
echo $b; // 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