La vérification et le nettoyage des données sont une tâche cruciale pendant le processus de développement Web. Les données des utilisateurs ou des systèmes tiers sont souvent imprévisibles, et les données non transformées peuvent entraîner des erreurs de programme, des exceptions de base de données et même des vulnérabilités de sécurité. Afin d'assurer la précision et la stabilité des données, les développeurs doivent généralement utiliser une variété de moyens pour filtrer et normaliser les données d'entrée. Cet article se concentrera sur une fonction intégrée PHP simple mais pratique - ABS () et explorera comment l'appliquer au processus de vérification et de nettoyage des données pour améliorer la qualité des données.
Dans PHP, ABS () est une fonction mathématique qui renvoie la valeur absolue d'un nombre. La syntaxe de base est la suivante:
abs(mixed $number): int|float
Il accepte un entier ou un paramètre de point flottant, qui renvoie sa valeur positive, qu'elle soit positive ou négative. Par exemple:
echo abs(-42); // Sortir: 42
echo abs(19.8); // Sortir: 19.8
Bien que ABS () soit essentiellement une fonction mathématique, il peut jouer un rôle inattendu dans la gestion des tâches de nettoyage et de vérification des données. Voici plusieurs scénarios d'application typiques:
Dans les plates-formes de commerce électronique ou les systèmes de facturation, des champs tels que le prix et la quantité devraient toujours être positifs. Cependant, l'utilisateur peut saisir un nombre négatif incorrect ou construire de manière malveillante la demande. À l'heure actuelle, la fonction ABS () peut être utilisée pour convertir rapidement ces données en nombres positifs raisonnables. Par exemple:
$input_quantity = $_POST['quantity'] ?? 0;
$clean_quantity = abs((int)$input_quantity);
Cette opération garantit que $ clean_quantity est un nombre positif, évitant ainsi des données incorrectes entrant dans la logique commerciale ultérieure.
De nombreux champs de base de données n'acceptent pas les nombres négatifs lorsqu'ils sont définis, tels que l'inventaire, les points, les votes, etc. Afin d'éviter l'interruption du programme en raison de données illégales, nous pouvons utiliser ABS () pour le nettoyer avant d'écrire dans la base de données. Par exemple:
$votes = abs((int)$_POST['votes']);
$query = "UPDATE articles SET vote_count = vote_count + $votes WHERE id = 1";
// Les données sont nettoyées à une valeur positive,Même si l'utilisateur entre un vote négatif
Parfois, nous ne voulons pas accepter toutes les données négatives par défaut, mais juger de nettoyer en fonction de la logique métier. Par exemple, pour le montant du remboursement, la valeur positive peut être traitée automatiquement lorsque la limite dépasse:
$refund = $_POST['refund_amount'];
if ($refund < -1000) {
$refund = abs($refund); // Plus que le nombre négatif maximal,Forcé à une valeur positive
}
Bien que ABS () fonctionne bien dans le nettoyage des nombres négatifs, il ne remplace pas le processus complet de vérification des données. Nous devons encore combiner les méthodes suivantes:
filter_var () : Vérifiez le type de données
is_numeric () : Vérifiez si les données sont un nombre
intVal () ou floatVal () : type de moulage
Règles de vérification personnalisées: définissez des plages de valeur raisonnables pour les scénarios commerciaux
Exemple de vérification complet:
$input = $_POST['amount'];
if (is_numeric($input)) {
$amount = abs(floatval($input));
if ($amount <= 10000) {
// Valeurs dans une plage raisonnable
// Peut être traité davantage
}
}
Supposons que nous ayons une interface de goûts d'utilisateur qui doit extraire le champ Like de la demande et assurez-vous que c'est toujours un entier positif:
$likes = abs((int)($_POST['likes'] ?? 0));
file_put_contents("/var/log/likes.log", "Received: $likes\n");
// Soumettre au système de traitement des antécédents
$response = file_get_contents("https://gitbox.net/api/submit_likes?count=$likes");
echo $response;
De cette façon, même si le client soumet un nombre négatif, il ne provoquera pas de comportement inattendu dans le système.
Bien que la fonction ABS () soit simple, elle a une valeur d'application unique dans le nettoyage et la vérification des données. Il fournit aux développeurs un moyen rapide et fiable de gérer les entrées négatives non désirées, en particulier dans les scénarios logiques positifs tels que les quantités, les dénombrements et les scores. L'intégration rationnellement ABS () dans le processus de traitement des données peut améliorer considérablement la robustesse du système et la tolérance aux pannes de l'entrée de l'utilisateur. À l'avenir, lorsque vous créez une application PHP, vous pourriez tout aussi bien revoir cette fonction apparemment simple, cela apportera peut-être des améliorations de stabilité inattendues à votre programme.