Position actuelle: Accueil> Derniers articles> Comment utiliser array_change_key_case () pour normaliser dans les données d'entrée utilisateur?

Comment utiliser array_change_key_case () pour normaliser dans les données d'entrée utilisateur?

M66 2025-04-25

Dans le développement de PHP, en particulier en ce qui concerne les données saisies par les utilisateurs, nous rencontrons souvent un cas incohérent de noms de clés entrés par les utilisateurs. Par exemple, les données de formulaire saisies par l'utilisateur ou les noms de clés dans les paramètres URL peuvent avoir différents formats de cas. À l'heure actuelle, si le traitement de cas unifié n'est pas effectué, certaines erreurs inattendues peuvent se produire.

PHP fournit une fonction très pratique array_change_key_case () , qui peut être utilisée pour modifier le format de boîtier des noms de clés de tableau. Cette fonction est très adaptée pour gérer les incohérences de cas dans l'entrée de l'utilisateur.

La fonction de la fonction array_change_key_case ()

La fonction array_change_key_case () est utilisée pour convertir tous les noms de clés d'un tableau en caractéristique supérieure et inférieure spécifiée. Vous pouvez choisir de convertir tous les noms de clés du tableau en minuscules ou en majuscules.

Prototype de fonction:

 array_change_key_case(array $array, int $case = CASE_LOWER): array
  • $ Array : le tableau à traiter.

  • $ cas : spécifie le cas converti. Il peut s'agir de cas_upper ou de cas_lower , la valeur par défaut est case_lower , indiquant que tous les noms de clés sont convertis en minuscules.

Exemple: format de cas unifié

Supposons que vous receviez les données de formulaire suivantes de l'entrée de l'utilisateur, les noms de clés peuvent avoir différents formats de cas:

 $userInput = [
    'Name' => 'John',
    'AGE' => 25,
    'email' => 'john@example.com'
];

Si vous souhaitez convertir uniformément tous les noms de clés en minuscules, vous pouvez utiliser array_change_key_case () :

 <?php
$userInput = [
    'Name' => 'John',
    'AGE' => 25,
    'email' => 'john@example.com'
];

// Convertir les noms de clés des tableaux en minuscules
$normalizedInput = array_change_key_case($userInput, CASE_LOWER);

print_r($normalizedInput);
?>

La sortie sera:

 Array
(
    [name] => John
    [age] => 25
    [email] => john@example.com
)

Comme vous pouvez le voir, tous les noms clés sont convertis en minuscules, évitant les problèmes causés par les incohérences de cas.

Traiter les paramètres de l'URL

Parfois, les paramètres de l'URL sont également là où nous devons y faire face. Par exemple, l'URL peut prendre des paramètres de requête avec différents cas, et nous voulons unifier le format de cas de ces paramètres. Supposons que votre URL soit comme ceci:

 https://m66.net/profile?UserName=JohnDoe&Email=john@example.com&Age=30

Utilisez parse_url () et parse_str () pour analyser l'URL et unifier le cas supérieur et inférieur des paramètres via array_change_key_case () :

 <?php
$url = "https://m66.net/profile?UserName=JohnDoe&Email=john@example.com&Age=30";

// AnalyseURL
$parsedUrl = parse_url($url);
parse_str($parsedUrl['query'], $queryParams);

// Convertir le nom de clé du paramètre de requête en minuscules
$normalizedParams = array_change_key_case($queryParams, CASE_LOWER);

print_r($normalizedParams);
?>

La sortie sera:

 Array
(
    [username] => JohnDoe
    [email] => john@example.com
    [age] => 30
)

De cette façon, vous pouvez vous assurer que même si les noms de clés de paramètre dans l'URL sont incohérents, ils seront finalement unifiés dans le format que vous souhaitez.

Résumer

array_change_key_case () est une fonction très utile qui peut vous aider à unifier le cas des noms de clés de tableau lors du traitement des tableaux. Lors du traitement des paramètres d'entrée ou d'URL de l'utilisateur, il est très important de faire un cas uniforme. Il peut réduire les erreurs causées par l'incohérence des cas et assurer la cohérence du traitement des données. Espérons que, avec les exemples de cet article, vous pouvez mieux comprendre comment utiliser array_change_key_case () pour résoudre le vrai problème.