cakephpのh()について
よく分かっていなかったのでメモ。
cakephpのh()は、htmlspecialchars()のラッパー。
htmlspecialchars()の仕様
<?php string htmlspecialchars ( string $string [, int $flags = ENT_COMPAT | ENT_HTML401 [, string $encoding = 'UTF-8' [, bool $double_encode = true ]]] )
htmlspecialchars()の方には、下記のようなエスケープ方法を指定できる。
ENT_COMPAT → ダブルクォートは置き換えるが、シングルクォートは置き換えない
ENT_QUOTES → シングルクォートとダブルクォートの両方を置き換える
ENT_NOQUOTES→ シングルクォートとダブルクォートの両方を置き換えない
h()の仕様
<?php h(string $text, boolean $double = true, string $charset = null)
h()はエスケープ方法が、ENT_QUOTESで固定されている。
第2引数の$doubleはhtmlspecialchars()の第4引数に渡される値ぽい(詳細は不明)