Dec
26
0
PHPのhtmlspecialchars

`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');