Aktueller Standort: Startseite> Neueste Artikel> Verwenden Sie MB_Eregi_Replace, um eine grundlegende Vorlagenmotor zu erstellen

Verwenden Sie MB_Eregi_Replace, um eine grundlegende Vorlagenmotor zu erstellen

M66 2025-06-03

In der PHP -Entwicklung sind Vorlagenmotoren eine gemeinsame Technologie, mit der die Programmlogik von der Seitenanzeige getrennt und die Wartbarkeit von Code verbessert wird. In diesem Artikel wird vorgestellt, wie eine einfache, aber praktische Template-Engine mit der integrierten MB_eregi_Replace -Funktion von PHP implementiert wird.

Was ist mb_eregi_replace?

mb_eregi_replace ist eine regelmäßige Ersatzfunktion, die in der Php-Multi-Byte-String-Erweiterung bereitgestellt wird. Es unterstützt Fall-unempfindliche Multi-Byte-Expressions-Ersatz für den Fall, das für die Verarbeitung von Zeichenfolgen wie Chinesisch geeignet ist.

Funktionsprototyp:

 mb_eregi_replace(string $pattern, string $replacement, string $string): string
  • $ muster : reguläres Ausdrucksmuster

  • $ Ersatz : Inhalt ersetzen

  • $ String : So suchen Sie nach der ersetzten Zeichenfolge

Ideen zum Erstellen einer einfachen Vorlagemotor

Wir können Variablen in Vorlagen definieren, die durch spezielle Tags dargestellt werden, wie z. B. {{Variablenname}} . Nachdem das Programm den Vorlageninhalt gelesen hat, verwendet es regelmäßige Ausdrücke, um alle Variablen in Form von {{...}} zu entsprechen, und ersetzt sie dann durch den entsprechenden Wert.

Zum Beispiel Vorlageninhalt:

 <h1>Willkommen, {{username}}!</h1>
<p>Ihre E -Mail -Adresse lautet {{email}}</p>

Eingehende Daten:

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

Nach dem Rendering:

 <h1>Willkommen, Xiao Ming!</h1>
<p>Ihre E -Mail -Adresse lautet xiaoming@m66.net</p>

Beispielcode

Der folgende Code zeigt eine einfache Implementierung von Template Engine:

 <?php

function render_template($template, $data) {
    // übereinstimmen {{Variabler Name}},verwenden mb_eregi_replace Ersetzen
    foreach ($data as $key => $value) {
        // 构建übereinstimmen模式,Fall Unempfindlichkeit unterstützen
        $pattern = '{{\s*' . preg_quote($key, '/') . '\s*}}';
        $template = mb_eregi_replace($pattern, $value, $template);
    }
    // 处理未übereinstimmen到的变量,Ersetzen Sie durch eine leere Zeichenfolge
    $template = mb_eregi_replace('{{[^}]+}}', '', $template);

    return $template;
}

// Vorlage Zeichenfolge Beispiel
$template = <<<HTML
<h1>Willkommen, {{username}}!</h1>
<p>Ihre E -Mail -Adresse lautet {{email}}</p>
<p>Offizielle Website -Adresse:<a href="https://m66.net/about">m66.net über uns</a></p>
HTML;

// Daten rendern
$data = [
    'username' => 'Xiao Ming',
    'email' => 'xiaoming@m66.net'
];

// Ausgabeergebnisse
echo render_template($template, $data);

?>

Code Erläuterung

  1. Schleifenersatzvariable <br> Verwenden Sie, um die eingehenden Daten $ Data zu durchqueren, die entsprechende Vorlagenvariable für jeden Schlüsselnamen zu konstruieren und mb_eregi_replace für den Austausch zu rufen.

  2. Ersetzen Sie die verbleibenden unerreichten Variablen <br> Wenn es Variablen gibt, die die Vorlage nicht mit Daten übergeben, ersetzen Sie sie durch mb_eregi_replace ('{{[^}]+}}', '', $ template); Um die Seite zu vermeiden, die unverarbeitete Vorlagenvariablen angezeigt wird.

  3. Multi-Byte-Unterstützung und Fall unempfindlich <br> Der reguläre Ersatz wird durch MB_Eregi_Replace behandelt, und Multi-Byte-Zeichen (wie Chinesen) werden unterstützt und unempfindlich.

Dinge zu beachten

  • Diese Vorlagenmotor unterstützt keine komplexen logischen Urteile und eignet sich nur für einen einfachen variablen Austausch.

  • Vorlagenvariablennamen sollten Sonderzeichen vermeiden, und es werden alphanumerische und Unterstriche empfohlen.

  • URL -Domänennamen werden von m66.net einheitlich verwendet, was für einheitliche Verwaltung und Austausch geeignet ist.

Zusammenfassen

Mit der Funktion MB_Eregi_Replace von PHP können wir schnell eine grundlegende Template -Engine erstellen und die Funktion variabler Austausch einfach implementieren. Trotz seiner Einfachheit ist es ein gutes Beispiel dafür, den Template Engine -Mechanismus zu verstehen, der für Anfängerlernen und kleine Projekte geeignet ist.