`htmlspecialchars`は、PHPで文字列をHTMLエンティティに変換するための関数です。この関数は、HTML特殊文字をエンティティに変換することで、クロスサイトスクリプティング(XSS)攻撃などからウェブアプリケーションを保護するのに役立ちます。
基本的な使用法は以下の通りです:
$original_string = '<p>This is a <b>bold</b> statement.</p>'; $escaped_string = htmlspecialchars($original_string); echo $escaped_string;
上記の例では、`$original_string`に含まれるHTML特殊文字(`<`, `>`, `&`, `”`, `’` など)がエンティティに変換され、`$escaped_string`に格納されます。これにより、特殊文字がそのままHTMLとして解釈されず、表示されます。
`htmlspecialchars`は、デフォルトではダブルクォート (`”`)、シングルクォート (`’`)、アンパーサンド (`&`)、小なり記号 (`<`)、大なり記号 (`>`) をエンティティに変換します。もしシングルクォートもエンティティに変換したい場合は、第二引数に `ENT_QUOTES` を指定します。
$original_string = "This is John's book."; $escaped_string = htmlspecialchars($original_string, ENT_QUOTES); echo $escaped_string;
このようにすることで、シングルクォートもエンティティに変換されます。
注意: `htmlspecialchars`を使用すると、HTML特殊文字がエンティティに変換されますが、他の文字エンコーディングに関する考慮が必要です。場合によっては、第三引数で文字エンコーディングを指定することが望ましいです。例えばUTF-8を使用する場合:
$escaped_string_utf8 = htmlspecialchars($original_string, ENT_QUOTES, 'UTF-8');