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() を適用します。
(PHP 7.3.0 以降は非推奨になり、
PHP 8.0.0 以降 削除 されています。
代わりに FILTER_SANITIZE_ADD_SLASHES
を使ってください)
|
|
FILTER_SANITIZE_ADD_SLASHES |
"add_slashes" | addslashes() を適用します。 (PHP 7.3.0 以降で利用可能です) | |
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_FLAG_NO_ENCODE_QUOTES
を設定することで無効に出来ます。
(PHP 8.1.0 以降は 非推奨 になりました。
代わりに htmlspecialchars() を使って下さい)
|
FILTER_SANITIZE_STRIPPED |
"stripped" | "string" フィルタのエイリアス。 (PHP 8.1.0 以降は 非推奨 になりました。 代わりに htmlspecialchars() を使って下さい) | |
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_chars
filter.default_flags = 0
バージョン | 説明 |
---|---|
8.0.0 |
FILTER_SANITIZE_MAGIC_QUOTES が削除されました。
|
7.3.0 |
FILTER_SANITIZE_MAGIC_QUOTES の代替として
FILTER_SANITIZE_ADD_SLASHES が追加されました。
|
7.3.0 |
FILTER_SANITIZE_MAGIC_QUOTES は推奨されなくなりました。
|