PHP マニュアル
前のページ |  | 次のページ

# 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_QUOTES` が設定されている場合は、シングルクオートとダブルクオートが共に変換されます。 `ENT_NOQUOTES` が設定されている場合は、シングルクオートとダブルクオートは共に変換されません。

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

- '&' (アンパサンド) は '&amp;' になります。

- `ENT_NOQUOTES` が設定されていない場合、 '"' (ダブルクォート) は '&quot;'になります。

- `ENT_QUOTES` が設定されている場合のみ、 ''' (シングルクオート) は '&#039;'になります。

- '<' (小なり) は '&lt;' になります。

- '>' (大なり) は '&gt;' になります。

例 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-1 | ISO8859-1 | 西欧、Latin-1
ISO-8859-15 | ISO8859-15 | 西欧、Latin-9 。Latin-1(ISO-8859-1) に欠けている ユーロ記号やフランス・フィンランドの文字を追加したもの。
UTF-8 |  | ASCII 互換のマルチバイト 8 ビット Unicode 。
cp866 | ibm866, 866 | DOS 固有のキリル文字セット。 4.3.2 以降でサポートされます。
cp1251 | Windows-1251, win-1251, 1251 | Windows 固有のキリル文字セット。 4.3.2 以降でサポートされます。
cp1252 | Windows-1252, 1252 | 西欧のための Windows 固有の文字セット。
KOI8-R | koi8-ru, koi8r | ロシア語。4.3.2 以降でサポートされます。
BIG5 | 950 | 繁体字中国語。主に台湾で使用されます。
GB2312 | 936 | 簡体字中国語。国の標準文字セットです。
BIG5-HKSCS |  | Big5 に香港の拡張を含めたもの。繁体字中国語。
Shift_JIS | SJIS, 932 | 日本語。
EUC-JP | EUCJP | 日本語。

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

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

前のページ | ホーム | 次のページ
htmlspecialchars_decode | 上に戻る | implode