Aktueller Standort: Startseite> Neueste Artikel> Wie Verwenden Sie die Funktion MB_Eregi_Replace, um Arrays zu kombinieren, um einen multimodalen und mehrrennen Textersatz zu erzielen?

Wie Verwenden Sie die Funktion MB_Eregi_Replace, um Arrays zu kombinieren, um einen multimodalen und mehrrennen Textersatz zu erzielen?

M66 2025-06-23

Im Fall der PHP-Textverarbeitung eignet sich die Funktion mb_eregi_replace () besonders für die Verarbeitung von UTF-8-codierten Textinhalten, da sie Multi-Byte-Zeichenfolgen und Fall-unempfindliche Ersatzteile unterstützt. Obwohl diese Funktion in der neuen Version von PHP aufgegeben wurde (empfohlen, mb_ereg_replace () oder preg_replace () ) zu verwenden, hat sie in einigen Projekten oder bestimmten Umgebungen immer noch ihre Nutzungsszenarien.

In diesem Artikel wird vorgestellt, wie die Funktion mb_eregi_replace () in Kombination mit Arrays verwendet wird, um Eins-zu-Viele-, Viele- oder viele-zu-Viele-Text-Ersatzstrategien zu implementieren.

Grundlegende Syntax

Die grundlegende Syntax von mb_eregi_replace () lautet wie folgt:

 mb_eregi_replace(string $pattern, string $replacement, string $string, string $option = "msr")
  • $ muster : reguläres Ausdrucksmuster

  • $ Ersatz : Inhalt ersetzen

  • $ String : Zielzeichenfolge

  • $ Option : Übereinstimmung Optionen (kann weggelassen werden)

Anwendungsszenarioanalyse

Angenommen, wir möchten eine solche Ersatzlogik implementieren:

  • Ersetzen Sie alle Links durch "http: //" oder "https: //" Präfixe mit [Link]

  • Ersetzen Sie alle Wörter wie "Test" und "Beispiel" im Text durch "Beispiel".

  • Ersetzen Sie mehrere Schlüsselwörter wie "Apple" → "Apple", "Google" → "Google"

Wir können Arrays verwenden, um diese Regeln zu kombinieren und nacheinander Ersatz mit Array_Map () oder Schleifen durchzuführen.

Beispielcode

Hier ist ein vollständiges Beispiel, das zeigt, wie komplexer Textersatz mit Arrays mit mb_eregi_replace () implementiert wird:

 <?php

// Originaltext
$text = <<<TEXT
Dies ist ein Testtext,Links eingeben:http://m66.net/page Und https://m66.net/example。
Zusätzlich,Ebenfalls enthalten sind einige Markenwörter,Wie Apple、Google,Es gibt einige Beispiele。
TEXT;

// Regelarray ersetzen:Schlüssel ist der Modus,Der Wert ist der Ersatzinhalt
$replace_rules = [
    // Link Match,Ersetzen durch [Link]
    '(http|https)://m66\.net/[a-zA-Z0-9/_\-]+' => '[Link]',

    // Test oder Beispiel → Beispiel
    'prüfen|Beispiel' => 'Beispiel',

    // Markenersatz
    'Apfel' => 'Apple',
    'Google' => 'Google'
];

// Führen Sie einen Multi-Mode-Austausch durch
foreach ($replace_rules as $pattern => $replacement) {
    $text = mb_eregi_replace($pattern, $replacement, $text);
}

// Ausgabeverarbeitungsergebnisse
echo nl2br($text);

Ausgangsergebnis

 这是一个Beispiel文本,Links eingeben:[Link] Und [Link]。
Zusätzlich,Ebenfalls enthalten sind einige Markenwörter,wie Apple、Google,还有一些Beispiel内容。

Dinge zu beachten

  1. Leistungsprobleme : Im Falle einer großen Anzahl von Ersetzungen wird ein Schleifenaufruf an mb_eregi_replace () eine Leistungsbelastung mit sich bringen. Sie können in Betracht ziehen, Regeln mit einmaligem Ersatz zu verschmelzen oder eine Array-Version von preg_replace () zu verwenden.

  2. Fluchtfiguren : Wenn Sie regelmäßige Ausdrucksmuster erstellen, sind Symbole wie . , / usw. muss richtig entkommen werden.

  3. Regelmäßige Kompatibilität : Obwohl MB_Eregi_Replace () Multi-byte-Safe ist, unterstützt es keine Perl-kompatible Regelmäßigkeit. Es wird empfohlen, Preg_Replace () für die komplexe Modusverarbeitung zu verwenden.

Alternativen

Da mb_ereg_replace () nach PHP 7.3 aufgegeben wurde, besteht der empfohlene Ansatz darin, stattdessen mb_ereg_replace () (Fallempfindlichkeit) oder PREG_REPLACE () (leistungsfähiger) zu verwenden. Zum Beispiel:

 $text = preg_replace(array_keys($replace_rules), array_values($replace_rules), $text);

Dadurch wird Ersatz präzise und effizienter in der Ausführung.

Zusammenfassen

Durch die Zusammenfassung der Ersatzregeln in ein Array können wir mit MB_Eregi_Replace () schnell Multi-Rule-Stapel-Textersatz implementieren. Dieses Modell eignet sich besonders für einfache Inhaltsreinigung, Keyword -Ersatz, Inhaltsschutz und andere Szenarien. Obwohl diese Funktion allmählich veraltet ist, können ihre Ideen immer noch auf neuere Funktionen oder andere Sprachen verschoben werden, um eine effiziente und flexible Textverarbeitung zu erreichen.