LoginSignup
3
1

More than 3 years have passed since last update.

PHP htmlspecialcharsについて

Posted at

htmlspecialcharsについて


htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = ini_get("default_charset") [, bool $double_encode = TRUE ]]] ) : string

・特殊文字を HTML エンティティに変換する。
・第二引数は、フラグ定数でクォートや無効な符号単位シーケンス、そして文書型の扱いを指定する。 デフォルトは ENT_COMPAT | ENT_HTML401

フラグ定数名 説明
ENT_COMPAT ダブルクオートはエスケープするが、シングルクオートはしない
ENT_QUOTES ダブルクオートもシングルクオートも両方エスケープする
ENT_NOQUOTES ダブルクオートもシングルクオートもエスケープしない
ENT_HTML401 HTML 4.01 として処理
ENT_HTML5 HTML 5 として処理

変換前と変換後

  • <&lt;
  • >&gt;
  • &&amp;
  • "&quot;

・第二引数に ENT_QUOTES を指定すると、下記の変換も行う。

  • '&#039; or &apos;

・第三引数は、文字エンコーディングを定義。

変換する理由

  • XSSを防ぐため。
  • テキストで入力されたものを正しくHTMLに出力するため。

使用例

//次の様なラッパー関数を準備する
function h($str) {
  return htmlspecialchars($str, ENT_QUOTES|ENT_HTML5, "UTF-8");
}
// HTMLに出力する際
echo h('<hoge>');
3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1