この拡張モジュールは、データの検証や除去を行います。 未知の (外部からの) データ、たとえばユーザの入力などを扱う際に便利です。 HTML フォームから送られてくるデータなどがこれにあたります。
フィルタリングの方式には、大きく分けて 検証 (validation) と 除去 (sanitization) のふたつがあります。
検証 は、 データが何らかの条件を満たしているかどうかをチェックします。 たとえば FILTER_VALIDATE_EMAIL を渡すと、 データがメールアドレスとして正しい形式かどうかを調べます。 データ自体には何も手を加えません。
除去 は、 望まれていない文字を除去するなどしてデータを変更します。 たとえば FILTER_SANITIZE_EMAIL を渡すと、 メールアドレスとして無効な文字が含まれている場合にそれを除去します。 つまり、データの検証を行うわけではありません。
検証および除去のいずれについても、必要に応じて フラグ を使用して挙動を変更することができます。たとえば URL のフィルタリング時に FILTER_FLAG_PATH_REQUIRED を渡すと、パス (http://example.org/foo における /foo など) を必須とすることができます。