Dans le développement Web, le nettoyage et la vérification des données de formulaire sont une étape importante pour garantir la sécurité et la précision des données. La fonction Array_Filter de PHP nous fournit un moyen simple et efficace de filtrer les éléments dans un tableau. En combinant Array_Filter et des fonctions de rappel personnalisées, nous pouvons nettoyer les données de formulaire soumises par l'utilisateur et les vérifier avant de traiter les données.
La fonction Array_Filter est utilisée pour filtrer les éléments dans un tableau et renvoyer un nouveau tableau contenant des éléments testés par la fonction de rappel. La syntaxe de base est la suivante:
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
$ tableau : le tableau d'entrée à filtrer.
$ rappel : une fonction de rappel utilisée pour filtrer les éléments du tableau. Si la fonction de rappel n'est pas fournie, les éléments avec la valeur false (tels que 0 , null , false , string vide "" , etc.) seront supprimés par défaut.
Mode $ : spécifiez la méthode de filtrage. Habituellement, il n'est pas nécessaire de le définir, utilisez simplement la valeur par défaut 0 .
Supposons que nous ayons un formulaire où l'utilisateur a soumis des informations telles que le nom d'utilisateur, le courrier électronique et le numéro de téléphone mobile. Nous voulons nettoyer ces données et supprimer des espaces inutiles ou des caractères illégaux.
<?php
// Données soumises par l'utilisateur
$formData = [
'username' => ' john_doe ',
'email' => ' john.doe@m66.net ',
'phone' => ' 123-456-7890 ',
'address' => ' '
];
// Nettoyer les fonctions de données:Supprimer les espaces et les caractères illégaux
$cleanData = array_map('trim', $formData);
// Sortir les données nettoyées
print_r($cleanData);
?>
Dans le code ci-dessus, Array_Map ('Trim', $ formData) supprime les espaces avant et après chaque valeur de champ de formulaire via la fonction de garniture . Si vous souhaitez nettoyer et vérifier davantage les données, vous pouvez utiliser Array_Filter pour supprimer les champs qui ne répondent pas aux exigences.
La vérification des données du formulaire est une étape critique pour s'assurer qu'elle répond aux exigences. Par exemple, nous pouvons vouloir nous assurer que le nom d'utilisateur n'a pas d'espaces, le format de messagerie est correct ou que le numéro de téléphone est valide.
<?php
// Données soumises par l'utilisateur
$formData = [
'username' => ' john_doe ',
'email' => ' john.doe@m66.net ',
'phone' => ' 123-456-7890 ',
'address' => ' '
];
// Nettoyer les données:Retirer les espaces excédentaires
$cleanData = array_map('trim', $formData);
// Vérifier les données:utiliserarray_filterFiltrez des données illégales
$validData = array_filter($cleanData, function($value, $key) {
switch ($key) {
case 'username':
return preg_match('/^\S+$/', $value); // Assurez-vous qu'il n'y a pas d'espaces dans le nom d'utilisateur
case 'email':
return filter_var($value, FILTER_VALIDATE_EMAIL); // Vérifiez le format de la boîte aux lettres
case 'phone':
return preg_match('/^\d{3}-\d{3}-\d{4}$/', $value); // Vérifiez le format du numéro de téléphone mobile
default:
return !empty($value); // D'autres champs ne peuvent pas être vides
}
}, ARRAY_FILTER_USE_BOTH);
// Sortie de données valides
print_r($validData);
?>
Dans cet exemple, nous utilisons Array_Filter en conjonction avec la fonction de rappel pour vérifier chaque champ de formulaire. La fonction de rappel vérifie si le contenu de chaque champ est conforme à une règle spécifique:
Le champ de nom d'utilisateur garantit qu'il n'y a pas d'espaces.
Le champ de messagerie garantit que le format répond aux normes de courrier électronique.
Le champ de téléphone garantit que le numéro de téléphone répond à un format spécifique (par exemple, 123-456-7890 ).
Si le champ ne répond pas aux exigences, Array_Filter filtrera les données illégales et renverra un nouveau tableau avec uniquement des champs légaux.
Si vous souhaitez donner une invite lorsque l'utilisateur soumet des données non valides, vous pouvez le faire en vérifiant si $ validdata est vide.
<?php
// Hypothèses$validDataIl a été généré par le code ci-dessus
if (empty($validData)) {
echo "Toutes les données soumises ne sont pas valides,Veuillez vérifier votre contribution。";
} else {
echo "La vérification des données a été transmise!";
// Processus supplémentaire des données valides
}
?>
Si le tableau $ validdata est vide, cela signifie que toutes les données soumises par l'utilisateur ne respectent pas les règles de vérification. Vous pouvez faire des commentaires à l'utilisateur en fonction de ce résultat.