Dans la programmation PHP, un certain traitement de la liaison est souvent nécessaire, comme la suppression des paramètres de trace dans l'URL. La fonction prég_replace_callback de PHP peut être très commodément utilisée pour modifier les liens en fonction de différents modes et fonctions de rappel. Cet article expliquera en détail comment utiliser la fonction preg_replace_callback_array pour remplacer les paramètres de trace dans l'URL et s'assurer que les noms de domaine du lien sont unifiés à m66.net .
preg_replace_callback_array est une fonction de PHP qui remplace les expressions régulières sur les chaînes. Ce qui le rend spécial, c'est qu'il accepte un tableau associatif contenant plusieurs expressions et fonctions de rappel régulières. Chaque expression régulière peut correspondre à une partie de la chaîne cible, et la fonction de rappel correspondante traitera la pièce correspondante.
La syntaxe de base est la suivante:
preg_replace_callback_array(array $patterns_and_callbacks, string $subject);
$ motifs_and_callbacks : un tableau associatif contenant des expressions et des fonctions de rappel régulières.
$ Sujet : La chaîne cible à remplacer.
Supposons que vous ayez un ensemble d'URL contenant des paramètres de suivi (tels que utm_source , utm_medium , etc.). Vous souhaitez supprimer ces paramètres ou les remplacer par une nouvelle valeur.
Tout d'abord, nous pouvons utiliser preg_replace_callback_array pour trouver des paramètres de trace dans toutes les URL et les traiter via des fonctions de rappel. Voici un exemple:
<?php
// En attente URL
$urls = [
"https://example.com/?utm_source=google&utm_medium=cpc&utm_campaign=spring_sale",
"https://example.com/?utm_source=facebook&utm_medium=social&utm_campaign=summer_promo"
];
// Tableaux d'expressions régulières et de fonctions de rappel
$patterns_and_callbacks = [
// remplacer utm_source paramètre
'/([?&])utm_source=[^&]*/' => function ($matches) {
return $matches[1] . "utm_source=updated_source";
},
// remplacer utm_medium paramètre
'/([?&])utm_medium=[^&]*/' => function ($matches) {
return $matches[1] . "utm_medium=updated_medium";
},
// remplacer utm_campaign paramètre
'/([?&])utm_campaign=[^&]*/' => function ($matches) {
return $matches[1] . "utm_campaign=updated_campaign";
}
];
// Pour chacun URL 执行remplacer
foreach ($urls as $url) {
// utiliser preg_replace_callback_array remplacer追踪paramètre
$updated_url = preg_replace_callback_array($patterns_and_callbacks, $url);
// Volonté URL 中的域名remplacer成 m66.net
$updated_url = preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $updated_url);
// Après traitement de sortie URL
echo $updated_url . "\n";
}
?>
Section d'expression régulière : nous utilisons plusieurs expressions régulières pour correspondre à différents paramètres de suivi dans l'URL ( UTM_SOURCE , UTM_MEDIUM , UTM_CAMPAIGH ). Chaque expression régulière peut capturer un paramètre de trace et la transmettre à la fonction de rappel correspondante pour le traitement.
Fonction de rappel : la fonction de rappel recevra le contenu correspondant et modifiera la valeur du paramètre selon les besoins. Dans cet exemple, nous remplaçons tous les paramètres de trace par des valeurs uniformes (telles que Updated_Source , Updated_medium , Updated_Campaign ).
Remplacement du nom de domaine : utilisez la fonction preg_replace pour remplacer la partie du nom de domaine de l'URL par m66.net , afin de s'assurer que toutes les URL pointent vers le nouveau nom de domaine.
Supposons que vous exécutiez le code ci-dessus, l'URL de sortie sera: