PHP html_entity_decode() 関数

❮ PHP 文字列リファレンス

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

<?php
$str = '&lt;a href=&quot;https://www.w3schools.com&quot;&gt;w3schools.com&lt;/a&gt;';
echo html_entity_decode($str);
?>

上のコードのHTML出力は次の通り(ソース表示):

<a href="https://www.w3schools.com">Go to w3schools.com</a>

ブラウザへの上のコードの出力は、次の通り:

Go to w3schools.com


定義と用法

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 として処理する/li>
  • ENT_HTML5 - コードを HTML 5 として処理する/li>
  • ENT_XML1 - コードを XML 1 として処理する/li>
  • ENT_XHTML - コードを XHTML として処理する/li>
character-set 任意。使用する文字セットを指定する文字列。

使用可能な値:

  • UTF-8 - デフォルト。ASCII 互換のマルチバイト 8 ビット Unicode
  • ISO-8859-1 - 西欧
  • ISO-8859-15 - 西欧 (adds the Euro sign + French and Finnish letters missing in 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+
変更歴 character-set パラメータのデフォルト値は、PHP 5でUTF-8に変更されました

テーブルがどの文書型かを指定するための追加のフラグ;ENT_HTML401、ENT_HTML5、ENT_XML1、ENT_XHTMLが PHP 5.4 で追加されました

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

その他の例

例 1

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

<?php
$str = "Albert Einstein said: &#039;E=MC&sup2;&#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出力は次の通り(ソース表示):

Albert Einstein said: &#039;E=MC²&#039;<br>
Albert Einstein said: 'E=MC²'<br>
Albert Einstein said: &#039;E=MC²&#039;

ブラウザへの上のコードの出力は、次の通り:

Albert Einstein said: 'E=MC²'
Albert Einstein said: 'E=MC²'
Albert Einstein said: 'E=MC²'


例 2

西欧文字セットを使用して、HTMLエンティティを文字に変換します:

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

上のコードのHTML出力は次の通り(ソース表示):

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

ブラウザへの上のコードの出力は、次の通り:

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


❮ PHP 文字列リファレンス