関数の概要
htmlentitiesは、PHPで文字列内の特殊文字を対応するHTMLエンティティに変換するための関数です。これにより、HTMLのタグとして解釈されることを防ぎ、安全にブラウザ上に表示できます。Webページでユーザーからの入力を表示する際などに非常に役立ちます。
パラメータの説明
string $string– エンティティ変換したい対象の文字列を指定します。int $flags– 変換する際のオプションをビットマスク形式で指定します。省略時はENT_COMPAT(ダブルクオートのみ変換)となります。string|null $encoding– 文字列の文字エンコーディングを指定します。指定がない場合はdefault_charsetに従います。bool $double_encode– 既にエンティティ化されている部分を再度エンコードするかどうか。デフォルトはtrue(再エンコードする)。
戻り値
引数で渡した文字列内の特殊文字がHTMLエンティティに変換された新しい文字列を返します。
使用例
基本的な使い方
<?php
$text = 'Tom & Jerry <3 "fun" »';
echo htmlentities($text);
?>
この例では、&や<、"などの特殊文字がエンティティに変換されて、安全にHTML内で表示されます。
UTF-8文字列のエンコード指定
<?php
$text = '© 2024 Example & サンプル';
echo htmlentities($text, ENT_QUOTES, 'UTF-8');
?>
日本語や特殊文字を含むUTF-8文字列を正しく処理するために、encodingパラメータにUTF-8を指定しています。
既にエンティティ化されている部分の再エンコードを防ぐ
<?php
$text = 'Fish & Chips';
echo htmlentities($text, ENT_QUOTES, 'UTF-8', false);
?>
$double_encodeをfalseにすると、&が既にエンティティ化されている場合は再度変換されず、そのまま出力されます。
関連する関数
htmlspecialchars–htmlentitiesより限定的に特殊文字をエンティティ化する関数。主に<や>、&、"、'のみ変換。html_entity_decode– エンティティ化された文字列を元の文字列に戻す関数。mb_convert_encoding– 文字列の文字エンコード変換を行う関数。
まとめ
htmlentitiesはWeb開発で必須の関数であり、ユーザー入力や動的に生成される文字列を安全にHTMLで表示する際に使います。パラメータを適切に設定することで、様々な文字コードやケースに対応可能です。用途に応じて、htmlspecialcharsと使い分けることがポイントです。
