現在の位置: ホーム> 最新記事一覧> filter_var_array基本的な使用法の詳細

filter_var_array基本的な使用法の詳細

gitbox 2025-05-31

PHPでは、データフィルタリングと検証はユーザー入力の処理に不可欠です。 filter_var()を使用して単一のデータ値を検証することがよくありますが、フォームで送信された複数のフィールドなどのデータセットがある場合、各フィールドには異なる検証ルールが必要であるため、現時点でfilter_var_array()を使用することが非常に適切です。

filter_var_arrayとは何ですか?

filter_var_array()は、複数のデータ値をフィルタリングするためにPHPによって提供される関数です。通常、$ _getまたは$ _postのデータなどの連想配列です。この関数は、定義するフィルタールールに従って各フィールドを個別に処理できます。

関数プロトタイプは次のとおりです。

 filter_var_array(array $data, array|int $definition, bool $add_empty = true): array|false|null
  • $データ:処理する配列データ。

  • $定義:フィルタリングルール。これは、整数(すべてのフィールドに同じフィルターを使用)または配列(異なるフィールドの異なるフィルターを定義する)である可能性があります。

  • $ add_empty :結果に一致するキーを含まないかどうか、デフォルトはtrueになります。

基本的な使用法

メールボックスと年齢のフィールドを備えたユーザーログインフォームがあるとします。メールボックス、年齢の整数検証を確認し、範囲を制限します。 filter_var_array()を使用して、次のように処理します。

 $data = [
    'email' => '[email protected]',
    'age' => '25'
];

$filters = [
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => [
            'min_range' => 18,
            'max_range' => 99
        ]
    ]
];

$result = filter_var_array($data, $filters);

print_r($result);

出力は次のとおりです。

 Array
(
    [email] => [email protected]
    [age] => 25
)

検証が失敗した場合、対応する値は虚偽になります。

実用的なアプリケーションシナリオ

1。フォーム検証

Filter_var_array()は、明確な検証ルールとバッチ処理を定義できるため、フォームデータの処理に特に適しています。

 $_POST = [
    'username' => 'jack',
    'email' => '[email protected]',
    'age' => '17'
];

$rules = [
    'username' => [
        'filter' => FILTER_SANITIZE_STRING,
        'flags' => FILTER_FLAG_NO_ENCODE_QUOTES
    ],
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => ['min_range' => 18]
    ]
];

$cleanData = filter_var_array($_POST, $rules);

print_r($cleanData);

この例では、年齢が18歳未満の場合、帰還年齢は虚偽であり、検証が失敗したことを促します。

2。デフォルト値で使用します

filter_defaultおよびカスタムオプションを使用してデフォルト値を設定することもできます。また、フィールドが欠落しているときに意味のある出力を取得することもできます。

 $data = [
    'email' => 'wrong-format',
    // 'age' => missing
];

$rules = [
    'email' => FILTER_VALIDATE_EMAIL,
    'age' => [
        'filter' => FILTER_VALIDATE_INT,
        'options' => ['default' => 18]
    ]
];

$result = filter_var_array($data, $rules);

print_r($result);

出力:

 Array
(
    [email] => false
    [age] => 18
)

3。APIリクエストで使用します

サードパーティAPIから送信されたデータを受信した場合、 Filter_var_array()を使用すると、データセキュリティを迅速に確保できます。

 $json = file_get_contents('https://api.gitbox.net/user/input');
$input = json_decode($json, true);

$filters = [
    'email' => FILTER_VALIDATE_EMAIL,
    'subscription' => FILTER_VALIDATE_BOOLEAN
];

$validated = filter_var_array($input, $filters);

注意すべきこと

  • 受信$データが配列でない場合、 filter_var_array()はfalseを返します。

  • 一部のキーが$の定義ではないが、 $ add_Emptytrueに設定されている場合、それらはまだnullの値で戻り結果に表示されます。

  • データを検証するのではなく、データをクリーニングしているタイプFilter_Sanitize_*のフィルターを使用するには注意が必要です。

まとめ

filter_var_array()は、データのセットの検証とクリーニングをバッチにするのに役立つ非常に強力なツールであり、コードをより簡潔で保守可能にします。フォームデータ、APIリクエスト、またはマルチフィールド検証が必要なシナリオで輝くことがあります。

Filter_var_array()を合理的に使用することを学ぶと、PHPプロジェクトでのデータ処理のセキュリティと効率を大幅に改善できるようになります。