Php/docs/filter.filters.sanitize

提供:Dev Guides
< Php
移動先:案内検索

除去フィルタ

除去フィルタの一覧
ID 名前 フラグ 説明
FILTER_SANITIZE_EMAIL "email"   英字、数字および

!#$%&'*+-=?^_`{|}~@.[] 以外のすべての文字を取り除きます。

FILTER_SANITIZE_ENCODED "encoded" FILTER_FLAG_STRIP_LOW,

FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH

文字列を URL エンコードします。オプションで、

特殊文字を取り除いたりエンコードしたりします。

FILTER_SANITIZE_MAGIC_QUOTES "magic_quotes"   addslashes() を適用します。
FILTER_SANITIZE_NUMBER_FLOAT "number_float" FILTER_FLAG_ALLOW_FRACTION,

FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC

数字、+- および

オプションで .,eE 以外のすべての文字を取り除きます。

FILTER_SANITIZE_NUMBER_INT "number_int"   数字、プラス記号、マイナス記号

以外のすべての文字を取り除きます。

FILTER_SANITIZE_SPECIAL_CHARS "special_chars" FILTER_FLAG_STRIP_LOW,

FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH

'"<>& および

ASCII 値が 32 未満の文字を HTML エスケープします。オプションで、 特殊文字を取り除いたりエンコードしたりします。

FILTER_SANITIZE_FULL_SPECIAL_CHARS "full_special_chars" FILTER_FLAG_NO_ENCODE_QUOTES, htmlspecialchars()ENT_QUOTES を指定してコールするのと同じです。

クォートのエンコードを無効にするには FILTER_FLAG_NO_ENCODE_QUOTES を設定します。 htmlspecialchars() と同様、このフィルタは default_charset に対応しています。 現在の文字セットで無効な文字となるバイトシーケンスが検出されると文字列全体を拒否し、 結果は長さ 0 の文字列となります。 このフィルタをデフォルトのフィルタとして使う場合は、以下の警告を参考にして デフォルトのフラグを 0 に設定しましょう。

FILTER_SANITIZE_STRING "string" FILTER_FLAG_NO_ENCODE_QUOTES,

FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP

タグを取り除きます。オプションで、

特殊文字を取り除いたりエンコードしたりします。

FILTER_SANITIZE_STRIPPED "stripped"   "string" フィルタのエイリアス。
FILTER_SANITIZE_URL "url"   英字、数字および

$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&= 以外のすべての文字を取り除きます。

FILTER_UNSAFE_RAW "unsafe_raw" FILTER_FLAG_STRIP_LOW,

FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP

何もせず、オプションで特殊文字を取り除いたりエンコードしたりします。

FILTER_DEFAULT は、このフィルタのエイリアスです。

警告 これらのフィルタのいずれかを ini ファイルやウェブサーバーの設定でデフォルトフィルタとして使用すると、 デフォルトのフラグは FILTER_FLAG_NO_ENCODE_QUOTES となります。 デフォルトでクォートをエンコードさせるには、 明示的に filter.default_flags を 0 としなければなりません。

例1 デフォルトのフィルタを htmlspecialchars と同様の挙動にする設定

filter.default = full_special_charsfilter.default_flags = 0

変更履歴

バージョン 説明
5.2.11/5.3.1 スラッシュ (/) が

FILTER_SANITIZE_EMAIL から取り除かれました。これより前のバージョンでは、スラッシュも含まれていました。