htmlspecialchars()のdouble_encode

この記事は約1分で読めます。

phpで必須のhtmlspecialchars()のメモ。

htmlspecialcharsはphpユーザーにとってはなじみ深い。
「htmlspecialchars — 特殊文字を HTML エンティティに変換する」というもの。

例えば&というものが

&

というものに変換される。
ブラウザは、この4文字が来ると、「&」と表示してくれるというもの。

ただ、場合によっては、

&

の一文字目の&にも変換が効いてしまい、

&

みたいになってしまうこともある。
これを防ぐのが第四引数double_encodeの役割。
名前の通り、2重のencodeを防いでくれる。

引数にtrue与えないと効いてくれない。
デフォルトで効いてくれてもよさそうだけどなあ。

参考

htmlspecialchars
第四引数double_encodeでhtmlspecialcharsの二重エスケープ防止

コメント

タイトルとURLをコピーしました