htmlspecialchars
Home >> PHP関数リファレンス >> 文字列関数 >> htmlspecialchars

htmlspecialchars

解説 特殊文字をHTMLエンティティに変換する
書式 string htmlspecialchars( string string [, int quote_style [, string charset ]] )
string htmlspecialchars( string 文字列 [, int 変換スタイル [, string 文字コード ]] )
引数 string 文字列
quote_style " または ' を変換するかどうか
charset 文字コード
返値 特殊文字をHTMLエントリに変換した文字列

PHPマニュアル:htmlspecialchars htmlspecialchars()

htmlspecialchars()関数:概略解説

htmlspecialchars()は、HTMLにおいて特殊な意味を持つ文字を、そのまま表示できるようHTMLの表示形式に変換します。

htmlspecialchars()関数:返り値解説

指定した文字列中のHTML特殊文字をHTMLの表示形式に変換した文字列が返されます。

htmlspecialchars()関数:引数解説

string 文字列

変換対象の文字列を指定します。変換対象となる文字は以下の通りです。

htmspecialchars()関数で変換対象となる文字列
変換される文字 変換後の文字 変換状況
& & 常に変換される
< &lt;
> &gt;
" &quot; quote_styleの設定による。デフォルトでは変換される。
' &#039; quote_styleの設定による。デフォルトでは変換されない。

htmlspecialchars()では、上記の表に挙げた文字以外の変換は行いません。全てのHTML特殊文字を変換するにはhtmlentities()関数を使用します。

quote_style 変換スタイル

"(ダブルクォート)または'(シングルクォート)を変換するかどうか。デフォルトにはENT_COMPACTという値が設定されていますので、ダブルクォートは変換されますが、シングルクォートは変換されません。

quote_styleの指定には以下の定数を使用します。

htmlspecialchars()関数でのquote_style指定方法
定数名 定数値 変換スタイル
ENT_COMPAT 2 "は変換するが、'は変換しない(デフォルト)
ENT_QUOTES 3 両方変換する
ENT_NOQUOTES 0 両方変換しない

charset 文字コード

変換に使用する文字コード。デフォルトではISO-8859-1。

htmlspecialchars()関数:補足解説

第3引数のcharsetはPHP4.1.0で追加されました。

参考関数

  • 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>

&lt;a href=&quot;test&quot;&gt;test&lt;/a&gt;のような文字列になっています。