# データのフィルタリング

# はじめに

この拡張モジュールは、データの検証や除去を行います。 未知の (外部からの) データ、たとえばユーザーの入力などを扱う際に便利です。 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` など) を必須とすることができます。

- インストール/設定
  - インストール手順
  - 実行時設定
- 定義済み定数
- 例
  - 検証
  - 除去
- Filter 関数
  - filter_has_var — 指定した型の変数が存在するかどうかを調べる
  - filter_id — フィルタの名前からフィルタ ID を返す
  - filter_input — 指定した名前の変数を外部から受け取り、オプションでそれをフィルタリングする
  - filter_input_array — 外部から変数を受け取り、オプションでそれらをフィルタリングする
  - filter_list — サポートされるフィルタの一覧を返す
  - filter_var — 指定したフィルタでデータをフィルタリングする
  - filter_var_array — 複数の変数を受け取り、オプションでそれらをフィルタリングする
- Filter\FilterException — Filter\FilterException クラス
- Filter\FilterFailedException — Filter\FilterFailedException クラス

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open