以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
FILTER_UNSAFE_RAW
(int)
このフィルタは何もしません。
しかし、FILTER_FLAG_STRIP_*
や FILTER_FLAG_ENCODE_*
と一緒に使うと、特殊な文字を除去したり、エンコードしたりできます。
FILTER_DEFAULT
(int)
のエイリアス FILTER_UNSAFE_RAW.
FILTER_SANITIZE_STRING
(int)
このフィルタは、タグを除去したり、 ダブルクォートやシングルクォートを HTML-エンコードしたりします。
フィルタ除去フラグ
FILTER_FLAG_STRIP_*,
FILTER_FLAG_ENCODE_*
と一緒に使うことで、特殊文字を除去したり、エンコードしたりもできます。
クォートをエンコードする際の振る舞いは、
フィルタフラグ FILTER_FLAG_NO_ENCODE_QUOTES
を使うことで無効にできます。
PHP 8.1.0 以降は、このフィルタは 推奨されません。 代わりに、htmlspecialchars() を使いましょう。
このフィルタがタグを除去する方法は、 strip_tags() と同じではありません。
FILTER_SANITIZE_STRIPPED
(int)
のエイリアス FILTER_SANITIZE_STRING.
PHP 8.1.0 以降は、このフィルタは 推奨されません。 代わりに、htmlspecialchars() を使いましょう。
FILTER_SANITIZE_ENCODED
(int)
このフィルタは、文字列をURLエンコードします。
このフィルタは、フィルタ除去フラグ
FILTER_FLAG_STRIP_*,
FILTER_FLAG_ENCODE_*
と一緒に使うことで、特殊文字をエンコードしたり除去することができます。
FILTER_SANITIZE_SPECIAL_CHARS
(int)
このフィルタは、
', ", <, >, &
および ASCII 値が32より小さい文字をHTMLエンコードします。
FILTER_SANITIZE_FULL_SPECIAL_CHARS
と異なり、
FILTER_SANITIZE_SPECIAL_CHARS
フィルタは
FILTER_FLAG_NO_ENCODE_QUOTES
フラグを無視します。
除去フラグ
FILTER_FLAG_STRIP_*
と一緒に使うことで、特殊文字を除去できます。
そして、
FILTER_FLAG_ENCODE_HIGH
と一緒に使うと、ASCII 値 127より大きな値をエンコードできます。
FILTER_SANITIZE_FULL_SPECIAL_CHARS
(int)
このフィルタは、
htmlspecialchars()
を ENT_QUOTES
と一緒にコールした場合と同じです。
クォートをエンコードする際の振る舞いは、
フィルタフラグ
FILTER_FLAG_NO_ENCODE_QUOTES
を使うと無効にできます。
htmlspecialchars() と同様に、 このフィルタは INI 設定 default_charset を認識します。 現在の文字セットに照らして不正なバイトシーケンスが検知された場合、 文字列全体が拒否され、空の文字列が返されます。
FILTER_SANITIZE_EMAIL
(int)
ラテン文字 ([a-zA-Z]),
数字 ([0-9]),
そして特殊文字
!#$%&'*+-=?^_`{|}~@.[]
以外の文字を全て除去します。
FILTER_SANITIZE_URL
(int)
ラテン文字 ([a-zA-Z]),
数字 ([0-9]),
そして特殊文字
$-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=
以外の文字を全て除去します。
FILTER_SANITIZE_NUMBER_INT
(int)
数字 ([0-9]), プラス記号 (+),
マイナス記号 (-) 以外の文字を全て除去します。
FILTER_SANITIZE_NUMBER_FLOAT
(int)
数字 ([0-9]), プラス記号 (+),
マイナス記号 (-) 以外の文字を全て除去します。
FILTER_FLAG_ALLOW_FRACTION
(int)
ドット文字 (.) を許可します。
これは通常、整数部分と小数部分の区切りを表します。
FILTER_FLAG_ALLOW_THOUSAND
(int)
桁区切り文字 (,) を許可します。
これは通常、1000ごとに桁を区切るのに使われます。
FILTER_FLAG_ALLOW_SCIENTIFIC
(int)
e と E 文字を許可することで、
科学的記法の数値を許可します。
FILTER_FLAG_ALLOW_FRACTION フラグを使わない場合、
10進数のセパレータは削除され、変更された値を受け取ることになります。
<?php
$number = '12.34';
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT));
var_dump(filter_var($number, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
?>上の例の出力は以下となります。
string(4) "1234" string(5) "12.34"
FILTER_SANITIZE_ADD_SLASHES
(int)
入力に対して addslashes() を適用します。 PHP 7.3.0 以降で利用可能です。
FILTER_SANITIZE_MAGIC_QUOTES
(int)
のエイリアス FILTER_SANITIZE_ADD_SLASHES.
PHP 7.3.0 以降は非推奨になり、 PHP 8.0.0 以降 削除 されています。