PHPサンプル
UPDATE:2017年09月27日
PHP HTMLタグを無効にする htmlentities()
PHP4 PHP5 PHP7
文字列のHTMLタグを無効化
htmlentities()関数は、文字列中のHTMLタグを無効化(HTMLエスケープ) して、HTMLエンティティに変換します。
HTMLエンティティ = htmlentities(入力文字列 [,フラグ指定, エンコード指定]);
//返り値は文字列(string)
//[ ]省略可能
//返り値は文字列(string)
//[ ]省略可能
htmlentities()関数によって、文字列中のHTMLタグがHTMLエンティティに変換されると、HTMLタグが無効化(HTMLエスケープ) され、HTMLタグはただの文字列として扱われます。ブラウザ上で通常の文字列として表示されます。
代表的なHTMLエンティティ
表示文字 | エンティティ名 | エンティティ数値 | 名称 |
---|---|---|---|
< | < | < | 小なり |
> | > | > | 大なり |
" | " | " | ダブルクォート |
' | ' | ' | シングルクォート |
| |   | 半角空白 |
& | & | & | アンパサンド |
例:
1 2 3 4 5 6 | <!-- サンプルコード --> <?php $html = '<a href="https://wepicks.net">wepicks</a>'; $htmlescape = htmlentities($html, ENT_QUOTES, 'UTF-8'); echo $htmlescape; ?> |
結果は
<a href="https://wepicks.net">wepicks</a>
となります。タグが無効化されてただの文字列となる。
POINT フラグ設定
- ENT_COMPAT ダブルクオートは変換しますがシングルクオートは変換しません。
- ENT_QUOTES シングルクオートとダブルクオートを共に変換します。
- ENT_NOQUOTES シングルクオートとダブルクオートは共に変換されません。
- ENT_IGNORE 無効な符号単位シーケンスを含む文字列を渡したときに、 空の文字列を返すのではなく無効な部分を切り捨てるようになります。 このフラグは使わないようにしましょう。 » セキュリティの問題が発生する可能性があります。
- ENT_SUBSTITUTE 無効な符号単位シーケンスを含む文字列を渡したときに、 空の文字列を返すのではなく Unicode の置換文字に置き換えます。 UTF-8 の場合は U+FFFD、それ以外の場合は &#FFFD; となります。
- ENT_DISALLOWED 指定した文書型において無効な符号単位シーケンスを含む文字列を渡したときに、 Unicode の置換文字に置き換えます。 UTF-8 の場合は U+FFFD、それ以外の場合は &#FFFD; となります。
- ENT_HTML401 コードを HTML 4.01 として処理します。
- ENT_XML1 コードを XML 1 として処理します。
- ENT_XHTML コードを XHTML として処理します。
- ENT_HTML5 コードを HTML 5 として処理します。
サンプルコード
1 2 3 4 5 6 7 8 9 | <!-- サンプルコード --> <h3>文字列のHTMLタグを無効にする(HTMLエスケープ)「htmlentities()」</h3> <?php $preHtmlStr = '<a href="https://wepicks.net">wepicks</a>'; echo 'エスケープ前:'.$preHtmlStr."<br>\n"; $aftHtmlStr = htmlentities($preStr, ENT_QUOTES, 'UTF-8'); echo 'エスケープ後:'.$aftHtmlStr."<br>\n"; echo '※htmlが無効化されています。'; ?> |
実行結果
文字列のHTMLタグを無効にする(HTMLエスケープ)「htmlentities()」
エスケープ前:wepicks
エスケープ後:<a href="https://wepicks.net">wepicks</a>
※htmlが無効化されています。
エスケープ前:wepicks
エスケープ後:<a href="https://wepicks.net">wepicks</a>
※htmlが無効化されています。
タグ(=記事関連ワード)
日付
投稿日:2012年3月4日
最終更新日:2017年09月27日
最終更新日:2017年09月27日
このカテゴリの他のページ
この記事へのコメント
トラックバックurl
https://wepicks.net/phpsample-string-htmlentities/trackback/