Dec
26
0
PHPのhtmlentities

`htmlentities`は、PHPで文字列をHTMLエンティティに変換するための関数です。これを使用すると、HTML文書内で特殊文字(たとえば、 `<`, `>`, `&`, `”`, `’` など)をエスケープして表示することができます。これにより、クロスサイトスクリプティング(XSS)攻撃などからウェブアプリケーションを守ることができます。

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

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

echo $escaped_html;

この場合、`$escaped_html`にはエスケープされたHTMLが含まれます。これを出力すると、HTMLタグがそのまま表示されずにエスケープされた形で表示されます。

`htmlentities`関数は、デフォルトでISO-8859-1文字セットを使用しますが、文字セットを指定することも可能です。例えばUTF-8を使用する場合:

$escaped_html_utf8 = htmlentities($html, ENT_QUOTES, 'UTF-8');

`ENT_QUOTES`は、シングルクォートもエスケープするためのフラグです。

注意: `htmlentities`を使用すると、すべての特殊文字がエンティティに変換されます。これにはタグも含まれます。HTMLを再度表示する場合、`html_entity_decode`を使用して元の文字列に戻すことができます。

$original_html = html_entity_decode($escaped_html);

これにより、エンティティが元の特殊文字に変換された文字列が取得できます。