XSS攻撃を防ぐためにhtmlspecialcharsを使うことが多いと思いますが、関数名が長く、しかも安全に使うにはオプションを指定しなければならない場合が多く、面倒です。
$安心文字列 = htmlspecialchars($あぶない文字列, ENT_QUOTES, 'UTF-8');
そんなわけで、HTMLのエスケープ処理を簡単安全に行う関数を作成しました。
こちらです。
function HTMLスペシャルキャラズ($str) {
$search = ['&', '"', "'", '<', '>'];
$replace = ['&', '”', '’', '<', '>'];
return str_replace($search, $replace, $str);
}
使い方
$安心文字列 = HTMLスペシャルキャラズ($あぶない文字列);
メリット一覧
- 関数名は13/16文字でなんと20%もの削減を実現。
- < や > といった意味不明のエンティティ文字を使わず、変換後も分かりやすい文字列を保持。
- ENT_QUOTES相当の処理を行い、オプションが不要に。
- 文字コード…?