Position actuelle: Accueil> Derniers articles> Utilisez MB_EREGI_REPLACE pour créer un moteur de modèle de base

Utilisez MB_EREGI_REPLACE pour créer un moteur de modèle de base

M66 2025-06-03

Dans le développement de PHP, les moteurs de modèles sont une technologie courante utilisée pour séparer la logique du programme de l'affichage de la page et améliorer la maintenabilité du code. Cet article présentera comment implémenter un moteur de modèle simple mais pratique à l'aide de la fonction MB_EREGI_REPLACE intégrée de PHP.

Qu'est-ce que MB_EREGI_REPLACE?

MB_EREGI_REPLACE est une fonction de remplacement régulière fournie dans l'extension de chaîne multi-octet PHP. Il prend en charge le remplacement de l'expression régulière multi-octe insensible à la caisse, adapté aux chaînes de traitement contenant des caractères multi-octets tels que le chinois.

Prototype de fonction:

 mb_eregi_replace(string $pattern, string $replacement, string $string): string
  • $ motif : modèle d'expression régulière

  • $ Remplacement : remplacer le contenu

  • $ String : Pour rechercher la chaîne remplacée

Idées pour construire un moteur de modèle simple

Nous pouvons définir des variables dans les modèles à représenter par des balises spéciales, telles que {{nom de variable}} . Une fois que le programme a lu le contenu du modèle, il utilise des expressions régulières pour correspondre à toutes les variables sous la forme de {{...}} , puis les remplace par la valeur correspondante.

Par exemple, contenu de modèle:

 <h1>accueillir, {{username}}!</h1>
<p>Votre adresse e-mail est {{email}}</p>

Données entrantes:

 [
  'username' => 'Xiao Ming',
  'email' => 'xiaoming@m66.net'
]

Après le rendu:

 <h1>accueillir, Xiao Ming!</h1>
<p>Votre adresse e-mail est xiaoming@m66.net</p>

Exemple de code

Le code suivant montre une implémentation de moteur de modèle simple:

 <?php

function render_template($template, $data) {
    // correspondre {{Nom variable}},utiliser mb_eregi_replace Faire un remplacement
    foreach ($data as $key => $value) {
        // 构建correspondre模式,Soutenir l&#39;insensibilité au cas
        $pattern = '{{\s*' . preg_quote($key, '/') . '\s*}}';
        $template = mb_eregi_replace($pattern, $value, $template);
    }
    // 处理未correspondre到的变量,Remplacer par une chaîne vide
    $template = mb_eregi_replace('{{[^}]+}}', '', $template);

    return $template;
}

// Exemple de chaîne de modèle
$template = <<<HTML
<h1>accueillir, {{username}}!</h1>
<p>Votre adresse e-mail est {{email}}</p>
<p>Adresse officielle du site Web:<a href="https://m66.net/about">m66.net à propos de nous</a></p>
HTML;

// Rendre des données
$data = [
    'username' => 'Xiao Ming',
    'email' => 'xiaoming@m66.net'
];

// Résultats rendus de sortie
echo render_template($template, $data);

?>

Explication du code

  1. Variable de remplacement de boucle <br> Utilisez ForEach pour traverser les données de données entrantes $ , construisez la variable de modèle correspondante pour chaque nom de clé et appelez MB_EREGI_REPLACE pour le remplacement.

  2. Remplacez les variables inégalées restantes <br> S'il existe des variables qui ne passent pas dans le modèle avec des données, remplacez-les par MB_ERGI_REPLACE ('{{[^}] +}}', '', $ template); Pour éviter la page, affiche des variables de modèle non transformées.

  3. Prise en charge multi-octet et cas insensible à cas <br> Le remplacement régulier est géré via MB_ERGI_REPLACE , et les caractères multi-octets (tels que chinois) sont pris en charge et insensibles à la casse.

Choses à noter

  • Ce moteur de modèle ne prend pas en charge les jugements logiques complexes et ne convient qu'au remplacement de variables simples.

  • Les noms de variables de modèle doivent éviter les caractères spéciaux, et l'alphanumérique et les soulignements sont recommandés.

  • Les noms de domaine URL sont uniformément utilisés par m66.net , ce qui est pratique pour la gestion et le remplacement unifiés.

Résumer

En utilisant la fonction MB_EREGI_REPLACE de PHP, nous pouvons rapidement créer un moteur de modèle de base et implémenter facilement la fonction de remplacement variable. Malgré sa simplicité, c'est un excellent exemple de compréhension du mécanisme du moteur du modèle, adapté à l'apprentissage des débutants et aux petits projets.