HTMLエンティティは、一部の文字のエンコードされたフォームであり、通常は;で始まります。一般的なHTMLエンティティは次のとおりです。
&lt;対応する<
&gt;コンプライアンス>
&amp;対応する&
「従順」
&nbsp;順守したスペース
これらのエンティティは、特定の文字がHTMLの構文エラーを引き起こすか、ページレンダリングに影響を与えるのを防ぐために使用されることがよくあります。 FormデータがHTTP要求を介して送信されると、これらの文字がエンティティに変換され、適切に送信されるようになります。
フォームデータがユーザーによってサーバーに送信されると、特殊文字はHTMLエンティティとして逃げることがよくあります。このエスケープはセキュリティ(悪意のあるスクリプトインジェクションの回避)に役立ちますが、元のコンテンツが正しく表示されるようにこれらのエンティティを復元する必要がある場合があります。たとえば、ユーザーが<and>を含むHTMLタグを入力し、タグが&ltに逃げられた場合。 and &gt;、ページに適切に表示されるように、実際の文字に復元することができます。
html_entity_decode()は、主にHTMLエンティティを対応する文字に変換するために使用されるPHPによって提供される組み込み関数です。基本的な使用法は次のとおりです。
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"Hello &lt;world&gt;!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_string</span></span><span>;
</span></span>
出力:
<span><span><span class="language-xml">Hello <span class="hljs-tag"><<span class="hljs-name">world</span></span></span></span><span>>!
</span></span>
上記のように、 html_entity_decode() restores &lt;そして&gt; <and>に。
html_entity_decode($ string、$ flags、$ encoding) :
$文字列:変換する必要があるHTMLエンティティを含む、処理する文字列。
$フラグ:変換プロセスを制御するオプションのパラメーター。一般的に使用されるロゴは次のとおりです。
ENT_COMPAT (デフォルト):単一の引用符ではなく、二重引用符のみを変換します。
ENT_QUOTES :ダブルと単一の引用を変換します。
ENT_NOQUOTES :見積マークは変換されません。
$エンコーディング:オプションのパラメーター、文字エンコードを指定し、デフォルトでUTF-8に指定します。
単一の引用符や二重引用符を含むすべてのHTMLエンティティを文字列に復元する場合は、 ENT_QUOTESフラグを使用できます。
<span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"It&apos;s a &quot;great&quot; day!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_string</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, ENT_QUOTES);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_string</span></span><span>;
</span></span>
出力:
<span><span>It</span><span><span class="hljs-symbol">'s</span></span><span> a </span><span><span class="hljs-string">"great"</span></span><span> day!
</span></span>
ユーザーがHTMLエンティティを含むテキストを入力するフォームがあるとします。サーバーに送信した後、サーバーが受信したテキストは逃げたHTMLエンティティである可能性があります。フォームの結果を提示するときに、これらのエンティティを復元する必要があります。この関数は、html_entity_decode()を使用して簡単に実現できます。
<span><span><span class="hljs-comment">// 受信したフォームデータが実行されたと仮定しますHTMLエンティティエスケープ</span></span><span>
</span><span><span class="hljs-variable">$submitted_data</span></span><span> = </span><span><span class="hljs-string">"Hello &lt;strong&gt;world&lt;/strong&gt;!"</span></span><span>;
</span><span><span class="hljs-variable">$decoded_data</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$submitted_data</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$decoded_data</span></span><span>;
</span></span>
出力:
<span><span>Hello <</span><span><span class="hljs-selector-tag">strong</span></span><span>>world</</span><span><span class="hljs-selector-tag">strong</span></span><span>>!
</span></span>
HTML_ENTITY_DECODE()を介して、元々脱出されたHTMLエンティティを復元でき、コンテンツを正しく表示できます。
HTMLエンティティの脱出と復元は、特にユーザー入力を処理する場合、フォームを開発する場合、非常に一般的な要件です。 HTML_ENTITY_DECODE()関数は、HTMLエンティティを対応する文字に戻すシンプルで効率的な方法を提供し、開発者がフォーム処理とデータプレゼンテーションでコンテンツのレンダリングをよりよく制御できるようにします。
html_entity_decode()を適切に使用することにより、ユーザーが送信したテキストを復元した後、HTMLエンティティによって引き起こされるその他の問題を避けて、正しく表示できるようにすることができます。
関連タグ:
HTML