入力された文や URL の値をそのまま HTML に出すと、タグとして解釈されてしまいます。htmlspecialchars() で、特別な意味のある文字を文字として表示できる形に変えます。
echo htmlspecialchars( $text, ENT_QUOTES, 'UTF-8' );
| 元の文字 | 変わったあと |
|---|---|
& |
& |
" |
" |
' |
'(ENT_QUOTES のとき) |
< |
< |
> |
> |
シングルクォートも変えるために ENT_QUOTES を付け、文字コードも書いておくのが安全です。WordPress のテーマでは、出す場所に合わせて esc_html()(本文)・esc_attr()(属性)・esc_url()(URL)を使い分けます。
WordPress の中では、esc_html() を使います(二重にエスケープしない・UTF-8 を確かめる)。



