PHP html_entity_decode()関数

事前定義されたHTMLエンティティ「<」(小さい)と「>」(大きい)を文字に変換します:

<?php
$str = "これは太字のテキストです.";
echo htmlspecialchars_decode($str);
?>

以下のコードの HTML 出力は以下の通りです(ソースコードを確認):

<!DOCTYPE html>
<html>
<body>
これは<b>太字</b>のテキストです。
</body>
</html>

以下のコードのブラウザ出力:

これは太字のテキストです。

定義と使用方法

htmlspecialchars_decode()関数は、事前定義されたHTMLエンティティを文字に変換します。

デコードされるHTMLエンティティは以下の通りです:

  • & を &(和号)にデコードします。
  • " を "(双重引用符)にデコードします。
  • ' を '(単独引用符)にデコードします。
  • < を <(小さい)にデコードします。
  • > を >(大きい)にデコードします。

htmlspecialchars_decode()関数はhtmlspecialchars()関数の逆関数です。

構文

htmlspecialchars_decode(string,flags)
パラメータ 説明
string 必須。デコードする文字列を指定します。
flags

オプション。引用符の処理方法と使用するドキュメントタイプを指定します。

利用可能な引用符の種類:

  • ENT_COMPAT - デフォルト。双重引用符のみをデコードします。
  • ENT_QUOTES - 双重引用符と単独引用符をデコードします。
  • ENT_NOQUOTES - どんな引用符もデコードしません。

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

  • ENT_HTML401 - デフォルト。HTML 4.01処理コードとして。
  • ENT_HTML5 - HTML 5処理コードとして。
  • ENT_XML1 - XML 1処理コードとして。
  • ENT_XHTML - XHTML処理コードとして。

技術的詳細

返り値: 変換された文字列を返します。
PHP バージョン: 5.1.0+
更新ログ:

PHP 5.4 で、使用される文書タイプを指定するための追加フラグが追加されました:

  • ENT_HTML401
  • ENT_HTML5
  • ENT_XML1
  • ENT_XHTML

さらに多くの例

例 1

プレ定义された HTML エンティティを文字に変換:

<?php
$str = "Bill & 'Steve'";
echo htmlspecialchars_decode($str, ENT_COMPAT); // 双重引用符のみ変換
echo "<br>";
echo htmlspecialchars_decode($str, ENT_QUOTES); // 双重引用符と単独引用符の変換
echo "<br>";
echo htmlspecialchars_decode($str, ENT_NOQUOTES); // いかなる引用符も変換しません
?>

以下のコードの HTML 出力は以下の通りです(ソースコードを確認):

<!DOCTYPE html>
<html>
<body>
Bill & 'Steve'<br>
Bill & 'Steve'<br>
Bill & 'Steve'
</body>
</html>

以下のコードのブラウザ出力:

Bill & 'Steve'
Bill & 'Steve'
Bill & 'Steve'

例 2

プレ定义された HTML エンティティを双重引用符に変換:

<?php
$str = 'I love "PHP".';
echo htmlspecialchars_decode($str, ENT_QUOTES); // 双重引用符と単独引用符の変換
?>

以下のコードの HTML 出力は以下の通りです(ソースコードを確認):

<!DOCTYPE html>
<html>
<body>
I love "PHP".
</body>
</html>

以下のコードのブラウザ出力:

I love "PHP".