Position actuelle: Accueil> Derniers articles> Convertir les balises personnalisées en éléments HTML

Convertir les balises personnalisées en éléments HTML

M66 2025-05-17

Dans PHP, la fonction preg_replace_callback_array est un outil puissant qui exécute une fonction de rappel pour le remplacer lorsqu'une expression régulière correspond à un modèle spécifique. Il peut gérer les opérations de remplacement complexes de chaîne, en particulier lorsque vous souhaitez gérer plusieurs modèles et fonctions de rappel, il fournit une manière plus concise et efficace.

Cet article expliquera comment utiliser preg_replace_callback_array pour convertir les balises personnalisées en éléments HTML. Supposons que nous ayons une balise personnalisée avec un format similaire à [Custom_tag] , que nous voulons convertir en un élément HTML standard (par exemple <v> ).

1. Qu'est-ce que preg_replace_callback_array

Tout d'abord, nous devons comprendre l'utilisation de base de preg_replace_callback_array . La syntaxe de cette fonction est la suivante:

 preg_replace_callback_array(array $patterns_and_callbacks, string $subject);
  • $ motifs_and_callbacks : est un tableau associatif contenant des expressions et des fonctions de rappel régulières. Chaque expression régulière est appliquée à la chaîne d'entrée et la fonction de rappel correspondante est exécutée lorsqu'elle est appariée.

  • $ Sujet : est la chaîne d'entrée à correspondre et à remplacer.

2. Définissez les balises personnalisées et les mappages d'éléments HTML

Supposons que notre tâche consiste à convertir les balises personnalisées suivantes en éléments HTML:

  • [Custom_tag] Convertir en <div class = "personnalisé-tag"> balise

  • [un autre_tag] Converti en <span class = "Another-tag"> TAG

3. Implémentez des exemples de code

Ensuite, nous écrivons le code pour terminer cette transformation à l'aide de preg_replace_callback_array :

 <?php
// Entrer la chaîne,Inclure des balises personnalisées
$input_string = "Ceci est inclus[custom_tag]Étiquette[/custom_tag]et[another_tag]Étiquette[/another_tag]Exemples。";

// 定义正则表达式et回调函数
$patterns_and_callbacks = [
    '/\[custom_tag\](.*?)\[\/custom_tag\]/s' => function ($matches) {
        return "<div class='custom-tag'>" . htmlspecialchars($matches[1]) . "</div>";
    },
    '/\[another_tag\](.*?)\[\/another_tag\]/s' => function ($matches) {
        return "<span class='another-tag'>" . htmlspecialchars($matches[1]) . "</span>";
    }
];

// utiliser preg_replace_callback_array Faire un remplacement
$result = preg_replace_callback_array($patterns_and_callbacks, $input_string);

// Résultat de sortie
echo $result;
?>

4. Analyse de code

  • Le premier paramètre de preg_replace_callback_array est un tableau associatif qui contient des expressions régulières et des fonctions de rappel correspondantes. Lorsque l'expression régulière correspond à la balise [Custom_tag] ou [Another_Tag] , la fonction de rappel correspondante est appelée.

  • Dans la fonction de rappel, nous utilisons la fonction HTMLSpecialChars pour échapper au contenu TAG pour empêcher les attaques XSS.

  • Enfin, la balise personnalisée d'origine est remplacée par l'élément HTML renvoyé par la fonction de rappel.

5. Résultats de l'exécution

Supposons que la chaîne d'entrée est:

 Ceci est inclus[custom_tag]Étiquette[/custom_tag]et[another_tag]Étiquette[/another_tag]Exemples。

Après avoir exécuté le code ci-dessus, la sortie sera:

 Ceci est inclus<div class='custom-tag'>Étiquette</div>et<span class='another-tag'>Étiquette</span>Exemples。

6. Résumé

preg_replace_callback_array est un outil puissant qui simplifie les scénarios qui nécessitent plusieurs opérations de remplacement régulières. Dans cet exemple, nous avons réussi à convertir les balises personnalisées [Custom_tag] et [un autre_tag] en éléments HTML <v> et <span> .

Si vous devez gérer des conversions d'étiquettes plus complexes, vous pouvez étendre la logique de la fonction de rappel en fonction de vos besoins. En utilisant cette fonction raisonnablement, vous pouvez facilement gérer diverses tâches de remplacement et de traitement des chaînes.