php htmlspecialcharsについて
なんとなく使ってたから、しっかり調べてみた。
htmlspecialcharsは、フォームから送られてきた値やデータベースから値を取り出すときに使用します。また基本的にユーザーが悪意のあるスプリクトを送信するのを防ぐ役割があります。(エスケープという)これは、HTMLエンティティ化と言い『'』や『”』などの特殊な意味を持つ特殊文字を別の文字列に変換します。
例
" (ダブルクォート)は、" '(シングルクォート)は 、'
ダブルクォートやシングルクォート、の他にも『<』や『>』や『&』も変換の対象となります。
また構文は、
htmlspecialchars (エンティティ対象文字列, (フラグ, エンコード(省略可)))
となります
そして、フラグより変換する文字列を指定出来ます。
ENT_CONPAT => ダブルクォートは変換して、シングルクォートは変換しない。
ENT_QUOTES => シングルクォートとダブルクォートどちらも変換する。
ENT_NOQUOTES => シングルクォートとダブルクォートどちらも変換しない。
ちなみに、htmlspecialcharsはよく簡略化して使うようです。
例
function h($s) { return htmlspecialchars($s, ENT_QUOTES, 'UTF-8'); } echo h($name);
こんな風に、関数化することによって見やすく使うことができます。
いくつかのサイトや本にも簡略化が書いてあったのでよく使うみたいです。覚えておいて損は無いみたいです。