htmlspecialchars

(PHP 3, PHP 4, PHP 5)

htmlspecialchars --  特殊文字をHTMLエンティティに変換する

説明

string htmlspecialchars ( string string, int [quote_style] [, string charset] )

文字の中には HTML において特殊な意味を持つものがあり、それら 本来の値を表示したければ HTML の表現形式に変換してやらなければ なりません。この関数は、これらの変換を行った結果の文字列を 返します。これは、日常的なWebプログラミングにおいて最も有用な 変換を行います。全てのHTML文字エンティティを変換する必要 がある場合には、代わりにhtmlentities()を使用し てください。

この関数は、メッセージボードやゲストブックのようにユーザーが書き こんだテキストにおいてHTML のマークアップ用文字を区別する必要があ る場合に有用です。オプションの2番目の形式 quote_style は、 シングルおよびダブルクオートされた文字で関数が何を行うかを指定し ます。デフォルトのモード ENT_COMPAT は下位互換性を有しており、ダブルクオートされた文字を変換し、 単純な引用のままにします。 ENT_COMPAT が設定されている場合、シングルクオート、 ダブルクオートは共に変換され、ENT_COMPAT が設定されている場合、シングルクオート、 ダブルクオートは共に変換されません。

変換対象となる文字は以下の通りです。

例 1. htmlspecialchars()の例

<?php
$new
= htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo
$new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;
?>

この関数は上記のあげたもの以外に関しては一切の変換を行わないことに 注意してください。すべての変換を行うには htmlentities()を参照してください。オプションの 2番目の引数は、PHP 3.0.17およびPHP 4.0.3で追加されました。

3番目の引数 charset は、 変換に使用される文字セットを指定します。デフォルト の文字セットは、ISO-8859-1です。3番目の引数のサポートは、PHP 4.1.0で追加されました。

PHP 4.3.0 以降では、以下の文字セットがサポートされます。

表 1. サポートされる文字セット

文字セットエイリアス説明
ISO-8859-1ISO8859-1 西欧、Latin-1
ISO-8859-15ISO8859-15 西欧、Latin-9 。Latin-1(ISO-8859-1) に欠けている ユーロ記号やフランス・フィンランドの文字を追加したもの。
UTF-8  ASCII 互換のマルチバイト 8 ビット Unicode 。
cp866ibm866, 866 DOS 固有のキリル文字セット。 4.3.2 以降でサポートされます。
cp1251Windows-1251, win-1251, 1251 Windows 固有のキリル文字セット。 4.3.2 以降でサポートされます。
cp1252Windows-1252, 1252 西欧のための Windows 固有の文字セット。
KOI8-Rkoi8-ru, koi8r ロシア語。4.3.2 以降でサポートされます。
BIG5950 繁体字中国語。主に台湾で使用されます。
GB2312936 簡体字中国語。国の標準文字セットです。
BIG5-HKSCS  Big5 に香港の拡張を含めたもの。繁体字中国語。
Shift_JISSJIS, 932 日本語。
EUC-JPEUCJP 日本語。

注意: それ以外の文字セットは理解できず、かわりに ISO-8859-1 が使用されます。

get_html_translation_table(), strip_tags(), htmlentities(), nl2br() も参照ください。