php htmlspecialchars_decodeでHTMLエンティティ化されたものを戻す

  • 作成日 2021.10.09
  • php
php htmlspecialchars_decodeでHTMLエンティティ化されたものを戻す

phpで、htmlspecialchars_decodeを使用して、HTMLエンティティ化されたものを戻すサンプルコードを記述してます。phpのバージョンは8.0です。

環境

  • OS  CentOS Linux release 8.0.1905 (Core)
  • php 8.0.0
  • nginx 1.14.1

htmlspecialchars_decode使い方

htmlspecialchars_decodeを使用すれば、HTMLエンティティ化されたものを戻すことが可能です。

$result = htmlspecialchars_decode(
文字列,
変換する種類 デフォルト:ENT_COMPAT | ENT_HTML401);

使用できる第二引数は以下となります。

  • ENT_COMPAT : ダブルクォートを含めシングルクォートは含めない
  • ENT_QUOTES : ダブルクォートとシングルクォートの両方を含める
  • ENT_NOQUOTES : ダブルクォートとシングルクォートの両方を含めない
  • ENT_XML1 : XML 1
  • ENT_XHTML : XHTML
  • ENT_HTML5 : HTML 5

以下は、HTMLエンティティ化されたものを戻すサンプルコードとなります。

<?php

$str = "&lt;a href=&quot;https://mebee.info/&quot;&gt;link&lt;/a&gt;";

$result = htmlspecialchars_decode($str);

print_r($result); // <a href="https://mebee.info/">link</a>

HTMLエンティティ化する場合は、htmlspecialcharsを使用します。

<?php

$str = "<a href=\"https://mebee.info/\">link</a>";

$result = htmlspecialchars($str);

print_r($result); // &lt;a href=&quot;https://mebee.info/&quot;&gt;link&lt;/a&gt;