htmlspecialchars
| 解説 | 特殊文字をHTMLエンティティに変換する |
|---|---|
| 書式 | string htmlspecialchars( string string [, int quote_style [, string charset ]] ) |
string htmlspecialchars( string 文字列 [, int 変換スタイル [, string 文字コード ]] ) |
|
| 引数 |
string
文字列
|
quote_style
" または ' を変換するかどうか
|
|
charset
文字コード
|
|
| 返値 | 特殊文字をHTMLエントリに変換した文字列 |
htmlspecialchars()は、HTMLにおいて特殊な意味を持つ文字を、そのまま表示できるようHTMLの表示形式に変換します。
string
文字列
変換対象の文字列を指定します。変換対象となる文字は以下の通りです。
| 変換される文字 | 変換後の文字 | 変換状況 |
|---|---|---|
& |
& |
常に変換される |
< |
< |
〃 |
> |
> |
〃 |
" |
" |
quote_styleの設定による。デフォルトでは変換される。 |
' |
' |
quote_styleの設定による。デフォルトでは変換されない。 |
htmlspecialchars()では、上記の表に挙げた文字以外の変換は行いません。全てのHTML特殊文字を変換するにはhtmlentities()関数を使用します。
quote_style
変換スタイル
"(ダブルクォート)または'(シングルクォート)を変換するかどうか。デフォルトにはENT_COMPACTという値が設定されていますので、ダブルクォートは変換されますが、シングルクォートは変換されません。
quote_styleの指定には以下の定数を使用します。
| 定数名 | 定数値 | 変換スタイル |
|---|---|---|
ENT_COMPAT |
2 | "は変換するが、'は変換しない(デフォルト) |
ENT_QUOTES |
3 | 両方変換する |
ENT_NOQUOTES |
0 | 両方変換しない |
charset
文字コード
参考関数
htmlentities()---- 適用可能な文字を全てHTMLエンティティに変換するaddslashes()---- 文字列をバックスラッシュでクォートするstripslashes()---- バックスラッシュでクォートされた文字列を元に戻すstrip_tags()---- 文字列からHTMLタグ、およびPHPタグを取り除くnl2br()---- 改行文字の前にHTMLの改行タグを挿入する
サンプルスクリプト
簡単な利用例
<?php
$str = "<a href=\"test\">test</a>";
echo htmlspecialchars($str);
?>
出力結果
<a href="test">test</a>
<a href="test">test</a>のような文字列になっています。


