PHP | htmlspecialchars()でHTMLをエスケープする方法
PHPのhtmlspecialchars()
関数を使ってHTMLの特殊文字をエスケープする方法とhtmlspecialchars_decode()
関数でエスケープした文字列をデコードする方法の簡単なサンプルコードになります。
htmlspecialchars()
関数はHTMLそのものを表示したい場合、フォームから送信する時やデータベースに保存したりJSONコードに変換する際に良く利用されます。
htmlspecialchars()でHTMLをエスケープする
htmlspecialchars()
関数はHTMLタグを含む文字列からタグの特殊文字をHTMLエンティティに変換します。
エスケープされたHTMLコードはブラウザ上で解釈され、HTMLタグを文字列として表示します。
オプション引数にて変換する条件などを指定する事が可能です。
下記のサンプルコードでは「ENT_QUOTES」を指定し、シングルクオートとダブルクオートを共に変換するように指定しています。
$data = htmlspecialchars('<p>BANANA</p>', ENT_QUOTES);
echo $data;
// <p>BANANA</p>
オプション引数 | 備考 |
---|---|
ENT_COMPAT | ダブルクオートを変換する。 シングルクオートを変換しない。 |
ENT_QUOTES | シングルクオートとダブルクオートを変換する。 |
ENT_NOQUOTES | シングルクオートとダブルクオートを変換しない。 |
ENT_SUBSTITUTE | 無効な符号単位シーケンスを含む文字列を渡した場合、 空の文字列を返すのではなくUnicode の置換文字に置き換える。 |
ENT_DISALLOWED | 指定した文書型において無効な符号位置を、Unicode の代替文字である U+FFFD (UTF-8) あるいは �に置き換える。 |
ENT_HTML401 | コードをHTML4.01として処理する。 |
ENT_XML1 | コードをXML1として処理する。 |
ENT_XHTML | コードをXHTMLとして処理する。 |
ENT_HTML5 | コードをHTML5として処理する。 |
htmlspecialchars_decode()でHTML文字をデコードする
htmlspecialchars_decode()
関数ははhtmlspecialchars()
関数などで変換したHTML文字を元に戻します。
デコードするデータはhtmlspecialchars()
関数が使われている必要はありません。
$data = htmlspecialchars('<p>BANANA</p>', ENT_QUOTES);
$html = htmlspecialchars_decode(data);
// BANANA
ディスカッション
コメント一覧
まだ、コメントがありません