この拡張モジュールは、データの検証や除去を行います。 未知の (外部からの) データ、たとえばユーザーの入力などを扱う際に便利です。 HTML フォームから送られてくるデータなどがこれにあたります。
フィルタリングの方式には、大きく分けて 検証 (validation) と 除去 (sanitization) のふたつがあります。
検証フィルタは、
データが何らかの条件を満たしているかどうかをチェックします。
検証フィルタは、
FILTER_VALIDATE_*
定数によって識別できます。
たとえば FILTER_VALIDATE_EMAIL
を渡すと、
データがメールアドレスとして正しい形式かどうかを調べます。
データ自体には何も手を加えません。
一方除去フィルタは、データを"綺麗に"します。
よって、入力データに文字を追加/削除することでデータを変更します。
除去フィルタは、
FILTER_SANITIZE_*
定数によって識別できます。
たとえば FILTER_SANITIZE_EMAIL
を渡すと、
メールアドレスとして無効な文字が含まれている場合にそれを除去します。
しかし、除去済みのデータ自体が、
正しいメールアドレスの形式かどうかを調べるわけではありません。
ほとんどのフィルタには、
オプションの フラグ があり、
その振る舞いを細かく調整できるようになっています。
こうしたフラグは、
FILTER_FLAG_*
定数によって識別できます。
たとえば、検証フィルタ FILTER_VALIDATE_URL
と一緒に FILTER_FLAG_PATH_REQUIRED
を使うと、URL に特定のパス
(http://example.org/foo
における
/foo
など) を必須とすることができます。