Dec
26
0
PHPのhtmlspecialchars_decode

`htmlspecialchars_decode`は、PHPでエスケープされたHTMLエンティティを元の文字列に戻すための関数です。`htmlspecialchars`や`htmlentities`などでエスケープされた文字列を元に戻す際に利用されます。

基本的な使用法は以下の通りです:

$escaped_html = "<p>This is a <b>bold</b> statement.</p>";
$original_html = htmlspecialchars_decode($escaped_html);

echo $original_html;

この場合、`$original_html`にはエスケープされていない元のHTMLが含まれます。この関数は、HTMLエンティティを対応する特殊文字にデコードします。

`htmlspecialchars_decode`は、デフォルトで `ENT_COMPAT` フラグを使用します。これはダブルクォートのみをエンティティとしてエスケープする設定です。もしシングルクォートもエスケープしたい場合は、`ENT_QUOTES` フラグを指定します。

$escaped_html = "<p>This is a <b>bold</b> statement with 'single quotes'.</p>";
$original_html = htmlspecialchars_decode($escaped_html, ENT_QUOTES);

echo $original_html;

このようにすることで、シングルクォートも正しくデコードされます。

注意: `htmlspecialchars_decode`は、HTMLエンティティに対してのみ機能します。`htmlentities`でエンティティ化された文字列に対しては、`html_entity_decode`を使用する必要があります。