htmlspecialchars関数の使い方

htmlspecialchars関数は特殊文字(<、>、&、”、’)をHTMLエンティティ(&lt;、&gt;、&amp;、&quot;、&apos;)にエスケープします。第一引数に対象の文字列、第二引数にフラグ定数、第三引数に文字コードを指定します。第二引数の初期値はENT_COMPATでダブルクオートをエスケープし、シングルクオートはエスケープしません。返り値はエスケープした文字列です。

htmlspecialchars(対象の文字列, フラグ定数, 文字コード);

第二引数のフラグ定数には以下が指定できます。
ENT_COMPAT:ダブルクオートをエスケープする、シングルクオートをエスケープしない
ENT_QUOTES:ダブルクオートとシングルクオートをエスケープする
ENT_NOQUOTES:ダブルクオートとシングルクオートをエスケープしない

<?php
$str = '<a href="sample">sample</a>';
var_dump($str);

$h_str = htmlspecialchars($str, ENT_QUOTES);
var_dump($h_str);
?>

実行結果は以下になります。エスケープ前はaタグが有効でテキストリンクになりますが、エスケープ後はaタグが無効で文字列になります。

string(27) "sample"
string(49) "<a href="sample">sample</a>"

第三引数まで指定する場合は、以下のように記述します。

<?php
$str = '<a href="sample">sample</a>';
$h_str = htmlspecialchars($str, ENT_QUOTES, 'UTF-8');
var_dump($h_str);
?>
タイトルとURLをコピーしました