現在の位置: ホーム> 最新記事一覧> HTML_ENTITY_DECODEとHTMLENTITIESを使用して、HTMLエンティティの双方向変換を実装する方法は?

HTML_ENTITY_DECODEとHTMLENTITIESを使用して、HTMLエンティティの双方向変換を実装する方法は?

gitbox 2025-06-15

Webコンテンツを処理する場合、HTMLコードの特殊文字をエンティティ( to &&&&など)に変換するか、HTMLエンティティを通常の文字に復元する必要があることがよくあります。 PHPは、これを行うための2つの非常に実用的な機能を提供します: HTMLENTITIESHTML_ENTITY_DECODE

この記事では、これら2つの機能の基本的な使用法を紹介し、それらを使用してHTMLエンティティの双方向変換を実装する方法を示します。


1。HTMLENTITIES - 文字をHTMLエンティティに変換します

HTMLENTITIES関数は、文字列内の一部の特殊文字を対応するHTMLエンティティに変換し、ブラウザがタグやその他の意味にそれらを解析することを妨げ、ページのセキュリティと正しくフォーマットを保護することができます。

関数プロトタイプ:

 string htmlentities ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = true ]]] )

簡単な例:

 <?php
$text = "Tom & Jerry's <b>adventure</b>!";
echo htmlentities($text);
// 出力:Tom &amp; Jerry&apos;s &lt;b&gt;adventure&lt;/b&gt;!
?>

2。HTML_ENTITY_DECODE - HTMLエンティティを文字に戻します

HTML_ENTITY_DECODEは反対に動作し、HTMLエンティティを対応する文字に変換します。

関数プロトタイプ:

 string html_entity_decode ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") ]] )

簡単な例:

 <?php
$encoded = "Tom &amp; Jerry&apos;s &lt;b&gt;adventure&lt;/b&gt;!";
echo html_entity_decode($encoded);
// 出力:Tom & Jerry's <b>adventure</b>!
?>

3。HTMLエンティティの双方向転換を実装する例

保存するためにHTMLエンティティに変換する必要がある文字列があると仮定し、エンティティを元の文字に復元しました。これは、これら2つの機能を組み合わせることで実現できます。

 <?php
$original = 'Hello & welcome to <a href="https://gitbox.net">gitbox.net</a>!';

// 文字列をに変換しますHTML実在物
$encoded = htmlentities($original);
echo "エンコード後: " . $encoded . "\n";

// 再将エンコード後的字符串还原
$decoded = html_entity_decode($encoded);
echo "デコード後: " . $decoded . "\n";
?>

出力:

 エンコード後: Hello &amp; welcome to &lt;a href=&quot;https://gitbox.net&quot;&gt;gitbox.net&lt;/a&gt;!
デコード後: Hello & welcome to <a href="https://gitbox.net">gitbox.net</a>!

4.一般的なパラメーターの説明

  • フラグENT_QUOTESなどの変換されたエンティティタイプを制御すると、単一の引用と二重引用符の両方を変換します。

  • エンコーディング:文字エンコードを指定します。デフォルトはPHP構成のエンコーディングであり、一般的にUTF-8に設定する方が安全です。

  • Double_EncodeHTMLENTITIESに固有):変換されたエンティティから再び逃げるかどうか、デフォルトはであり、通常はエンコードの重複を避けるためにfalseに設定されます。


5。概要

  • HTMLENTITIESを使用すると、HTMLタグがブラウザに解析されないようにし、文字の安全な出力を確保できます。

  • html_entity_decodeを使用して、HTMLエンティティを元の文字に復元します。これは、後続の処理に便利です。

  • 双方向変換の組み合わせは、ユーザー入力を安全に処理し、XSS攻撃を防ぎ、ディスプレイを容易にすることができます。

この記事が、これら2つの機能をよく理解して適用し、HTMLエンティティの双方向変換を実装するのに役立つことを願っています。