PHP html_entity_decode()関数

PHP String リファレンスマニュアル

例

HTML エンティティを文字に変換する:

<?php
$str = "&lt;&copy; W3CS&ccedil;h&deg;&deg;&brvbar;&sect;&gt;";
echo html_entity_decode($str);
?>

上記のコードの HTML 出力は次のとおりです(ソースコードを表示):

<!DOCTYPE html>
<html>
<body>
<© W3CSçh°°¦§>
</body>
</html>

上記のコードのブラウザ出力は次のとおりです:

<© W3CSçh°°¦§>


定義と使用法

html_entity_decode() 関数は HTML エンティティを文字に変換します。

html_entity_decode() 関数はhtmlentities()関数の逆関数です。


構文

html_entity_decode(string,flags,character-set)

パラメータ 説明
string 必須。デコードする文字列を指定します。
flags オプション。引用符の処理方法と使用するドキュメントタイプを指定します。

使用可能な引用符のタイプ:

  • ENT_COMPAT - デフォルト。二重引用符のみをデコードします。
  • ENT_QUOTES - 二重引用符と一重引用符をデコードします。
  • ENT_NOQUOTES - 引用符をデコードしません。

使用するドキュメントタイプを指定する追加のフラグ:

  • ENT_HTML401 - デフォルト。コードを HTML 4.01 として処理します。
  • ENT_HTML5 - コードを HTML 5 として処理します。
  • ENT_XML1 - コードを XML 1 として処理します。
  • ENT_XHTML - コードを XHTML として処理します。
character-set オプション。使用する文字セットを指定する文字列です。

許可される値:

  • UTF-8 - デフォルト。ASCII 互換のマルチバイト 8 ビット Unicode
  • ISO-8859-1 - 西ヨーロッパ
  • ISO-8859-15 - 西ヨーロッパ(ユーロ記号と、ISO-8859-1 にないフランス語およびフィンランド語のアルファベットを追加)
  • cp866 - DOS 固有のキリル文字セット
  • cp1251 - Windows 固有のキリル文字セット
  • cp1252 - Windows 固有の西ヨーロッパ文字セット
  • KOI8-R - ロシア語
  • BIG5 - 繁体字中国語、主に台湾で使用
  • GB2312 - 簡体字中国語、国家標準文字セット
  • BIG5-HKSCS - 香港拡張付き Big5
  • Shift_JIS - 日本語
  • EUC-JP - 日本語
  • MacRoman - Mac OS で使用される文字セット

注釈:PHP 5.4 より前のバージョンでは、認識できない文字セットは無視され、ISO-8859-1 に置き換えられました。PHP 5.4 以降では、認識できない文字セットは無視され、UTF-8 に置き換えられます。

技術的な詳細

戻り値: 変換された文字列を返します。
PHP バージョン: 4.3.0+
更新ログ: PHP 5 では、character-setパラメータのデフォルト値が UTF-8 に変更されました。

PHP 5.4 では、使用するドキュメントタイプを指定するための追加フラグ ENT_HTML401、ENT_HTML5、ENT_XML1、ENT_XHTML が追加されました。

PHP 5.0 では、マルチバイトエンコーディングのサポートが追加されました。


その他の例

例 1

いくつかの HTML エンティティを文字に変換する:

<?php
$str = "Jane &amp; &#039;Tarzan&#039;";
echo html_entity_decode($str, ENT_COMPAT); // Will only convert double quotes
echo "<br>";
echo html_entity_decode($str, ENT_QUOTES); // Converts double and single quotes
echo "<br>";
echo html_entity_decode($str, ENT_NOQUOTES); // Does not convert any quotes
?>

上記のコードの HTML 出力は次のとおりです(ソースコードを表示):

<!DOCTYPE html>
<html>
<body>
Jane & &#039;Tarzan&#039;<br>
Jane & 'Tarzan'<br>
Jane & &#039;Tarzan&#039;
</body>
</html>

上記のコードのブラウザ出力は次のとおりです:

Jane & 'Tarzan'
Jane & 'Tarzan'
Jane & 'Tarzan'


例 2

西ヨーロッパの文字セットを使用して、いくつかの HTML エンティティを文字に変換する:

<?php
$str = "My name is &Oslash;yvind &Aring;sane. I&#039;m Norwegian.";
echo html_entity_decode($str, ENT_QUOTES, "ISO-8859-1");
?>

The HTML output of the code above will be (View Source):

<!DOCTYPE html>
<html>
<body>
My name is Øyvind Åsane. I'm Norwegian.
</body>
</html>

上記のコードのブラウザ出力は次のとおりです:

My name is Øyvind Åsane. I'm Norwegian.



PHP String リファレンスマニュアル その他の拡張機能