洗面器に顔を突っ込んで、最初に顔を上げた奴が負ける

Webエンジニア 2018 12-15から毎週学習の記録 

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);

こんな風に、関数化することによって見やすく使うことができます。


いくつかのサイトや本にも簡略化が書いてあったのでよく使うみたいです。覚えておいて損は無いみたいです。