Position actuelle: Accueil> Derniers articles> Filter_Var_Array Détails d'utilisation de base

Filter_Var_Array Détails d'utilisation de base

gitbox 2025-05-31

En PHP, le filtrage et la vérification des données font partie intégrante du traitement des entrées utilisateur. Nous utilisons souvent filter_var () pour vérifier une seule valeur de données, mais si nous avons un ensemble de données, telles que plusieurs champs soumis par un formulaire, chaque champ nécessite des règles de vérification différentes, il est très approprié d'utiliser Filter_Var_Array () à l'heure actuelle.

Qu'est-ce que filter_var_array?

Filter_Var_Array () est une fonction fournie par PHP pour filtrer plusieurs valeurs de données , généralement un tableau associatif, tels que les données de $ _get ou $ _post . Cette fonction peut traiter chaque champ séparément en fonction des règles de filtre que vous définissez.

Le prototype de fonction est le suivant:

 filter_var_array(array $data, array|int $definition, bool $add_empty = true): array|false|null
  • $ Data : les données de tableau à traiter.

  • $ Définition : règle de filtrage, qui peut être un entier (en utilisant le même filtre pour tous les champs) ou un tableau (définissant différents filtres pour différents champs).

  • $ add_empty : s'il faut ne pas inclure les touches correspondantes dans le résultat, par défaut .

Utilisation de base

Supposons que vous ayez un formulaire de connexion utilisateur avec la boîte aux lettres et les champs d'âge. Vous souhaitez vérifier la boîte aux lettres, la vérification entière de l'âge et limiter la plage. Utilisez filter_var_array () pour traiter comme suit:

 $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);

La sortie peut être:

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

Si la vérification échoue, la valeur correspondante deviendra fausse .

Scénarios d'application pratiques

1. Vérification du formulaire

Filter_Var_Array () convient particulièrement pour le traitement des données du formulaire, car vous pouvez définir des règles de validation claires et un traitement par lots.

 $_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);

Dans cet exemple, si l'âge est inférieur à 18 ans, l' âge retourné sera faux , ce qui nous a incité que la vérification a échoué.

2. Utiliser avec les valeurs par défaut

Vous pouvez définir la valeur par défaut via Filter_Default et Options personnalisées, et vous pouvez également obtenir une sortie significative lorsqu'il manque des champs.

 $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);

Sortir:

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

3. Utiliser avec les demandes d'API

Lorsque vous recevez des données soumises par des API tierces, l'utilisation de filter_var_array () peut rapidement garantir la sécurité des données.

 $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);

Choses à noter

  • Si les données $ entrantes ne sont pas un tableau, filter_var_array () renvoie false .

  • Si certaines clés ne sont pas en définition $ , mais que $ add_empty est défini sur true , ils apparaîtront toujours dans le résultat de retour avec une valeur null .

  • Des soins sont nécessaires pour utiliser des filtres de type filter_sanitize_ * , qui nettoient les données plutôt que de vérifier les données.

résumé

Filter_Var_Array () est un outil très puissant qui peut nous aider à vérifier et à nettoyer un ensemble de données, ce qui rend le code plus concis et maintenable. Il peut briller dans le traitement des données de formulaire, des demandes d'API ou tout scénario qui nécessite une vérification multi-champs.

Apprenez à utiliser Filter_Var_Array () raisonnablement, et vous pourrez améliorer considérablement la sécurité et l'efficacité du traitement des données dans les projets PHP.