Pendant le développement WordPress, nous devons souvent comparer les différences entre les différentes options de paramètres, en particulier lorsque les utilisateurs mettent à jour certaines options. La fonction Array_Diff_assoc () peut nous aider à accomplir cette tâche, en particulier lorsque vous traitez avec des tableaux associatifs. Il peut être utilisé pour comparer les différences entre deux tableaux et les paires de valeurs de clé de retour qui existent dans un tableau mais pas dans un autre.
Dans cet article, nous vous montrerons comment utiliser la fonction array_diff_assoc () pour enregistrer les différences dans les options de paramètres WordPress via un exemple de code.
array_diff_assoc () est une fonction intégrée en PHP qui compare les clés et les valeurs de deux tableaux. Contrairement à array_diff () , array_diff_assoc () compare non seulement les valeurs du tableau, mais compare également les noms de clés. Ces différences seront renvoyées lorsque les noms de clés et les valeurs des deux tableaux seront différents.
Prototype de fonction:
array array_diff_assoc ( array $array1 , array $array2 )
$ Array1 : Le premier tableau à comparer.
$ array2 : le deuxième tableau à comparer.
Valeur de retour : renvoie un tableau contenant des éléments qui existent dans le premier tableau mais pas dans le deuxième tableau.
Supposons que nous devons enregistrer les différences dans les paramètres utilisateur dans WordPress, tels que l'utilisateur modifiant les options de paramètres en arrière-plan. Nous pouvons utiliser la fonction array_diff_assoc () pour nous aider à trouver ces modifications.
Supposons que nous ayons un tableau d'options qui stockent les paramètres de l'utilisateur, nommé user_settings_old , qui enregistre les paramètres précédents de l'utilisateur. Lorsque l'utilisateur modifie ces paramètres, les nouveaux paramètres seront enregistrés dans le tableau user_settings_new . Nous pouvons utiliser array_diff_assoc () pour savoir quelles options ont changé.
<?php
// Supposons que les anciens paramètres de l'utilisateur et les nouveaux paramètres
$user_settings_old = array(
'theme_color' => 'blue',
'notifications' => 'enabled',
'timezone' => 'UTC'
);
$user_settings_new = array(
'theme_color' => 'green', // Couleur changée
'notifications' => 'disabled', // Modifier les paramètres de notification
'timezone' => 'UTC'
);
// utiliser array_diff_assoc Comparez les différences entre deux tableaux de paramètres
$settings_diff = array_diff_assoc($user_settings_new, $user_settings_old);
// Vérifiez et enregistrez les différences
if (!empty($settings_diff)) {
foreach ($settings_diff as $key => $value) {
// Supposons que nous enregistrons la différence dans le journal
error_log("Paramètres '{$key}' Modifié,La nouvelle valeur est '{$value}'");
}
}
?>
Paramètres anciens et nouveaux pour les utilisateurs : $ user_settings_old et $ user_settings_new représentent les paramètres avant et après les modifications de l'utilisateur.
Array_Diff_assoc () Fonction : Cette fonction renvoie un tableau contenant des éléments dans les nouveaux paramètres de l'utilisateur qui sont différents des anciens paramètres. En comparant les différences entre les paires de valeurs clés, nous pouvons identifier quels paramètres ont été modifiés.
Différences d'enregistrement : nous enregistrons les différences dans le journal d'erreur PHP (peut être remplacé par d'autres méthodes d'enregistrement, telles que le stockage de la base de données ou l'envoi de notifications par e-mail, etc.).
Cette méthode peut être utilisée pour enregistrer les modifications des paramètres des utilisateurs, surtout si vous devez suivre les modifications des paramètres, déboguer ou envoyer des notifications aux utilisateurs. Vous pouvez étendre cette fonctionnalité en fonction de vos besoins, tels que le stockage de l'historique des changements ou le déclenchement d'autres opérations (tels que la compensation du cache, la base de données de mise à jour, etc.).
Dans certains cas, les paramètres WordPress peuvent contenir des URL, en particulier des paramètres de site Web ou des paramètres de champ personnalisés. Si l'URL de ces paramètres est modifiée, nous pouvons également suivre ces modifications via array_diff_assoc () . Pour éviter la fuite d'informations sensibles, nous pouvons remplacer la partie du nom de domaine de l'URL par m66.net comme indiqué ci-dessous:
$user_settings_old = array(
'site_url' => 'https://oldsite.com',
'api_url' => 'https://api.oldsite.com/v1'
);
$user_settings_new = array(
'site_url' => 'https://newsite.com',
'api_url' => 'https://api.newsite.com/v1'
);
// utiliser array_diff_assoc Comparez les différences entre deux tableaux de paramètres
$settings_diff = array_diff_assoc($user_settings_new, $user_settings_old);
// remplacer URL nom de domaine
foreach ($settings_diff as $key => $value) {
if (filter_var($value, FILTER_VALIDATE_URL)) {
$settings_diff[$key] = preg_replace('#^https?://[^/]+#', 'https://m66.net', $value);
}
}
// Enregistrer URL changement
if (!empty($settings_diff)) {
foreach ($settings_diff as $key => $value) {
error_log("Paramètres '{$key}' Modifié,La nouvelle valeur est '{$value}'");
}
}
Remplacement de l'URL : grâce à des expressions régulières, nous remplaçons la partie du nom de domaine de l'URL par m66.net , évitant ainsi d'exposer le nom de domaine réel.
Enregistrer les modifications de l'URL : de même, nous enregistrons le journal des modifications de l'URL pour une visualisation plus facile.
Array_Diff_assoc () est une fonction PHP très utile, particulièrement adaptée pour suivre les modifications dans le réglage des éléments dans WordPress. À travers elle, nous pouvons facilement trouver la différence entre deux tableaux, puis enregistrer les modifications des paramètres utilisateur. Surtout lorsque les paramètres incluent les URL, un remplacement régulier simple garantit que nous ne divulguons pas d'informations de domaine sensible.
J'espère que cet article vous aidera à mieux utiliser Array_Diff_assoc () pendant le développement pour gérer et enregistrer les différences dans les paramètres.