Aktueller Standort: Startseite> Neueste Artikel> Erstellen Sie einen benutzerdefinierten BBCode -Konverter

Erstellen Sie einen benutzerdefinierten BBCode -Konverter

M66 2025-05-31

Beim Umgang mit Textformatierung in PHP wird häufig BBCode (eine vereinfachte Markup -Sprache) verwendet, mit der Benutzer Textstile wie mutige, kursive, kursive Links usw. über einfache Tags hinzufügen können. In diesem Artikel wird gezeigt, wie Sie die Funktion MB_Eregi_Replace verwenden, um einen einfachen benutzerdefinierten BBCode -Konverter zu erstellen, um BBCode -Tags in die entsprechenden HTML -Tags umzuwandeln.


Was ist mb_eregi_replace?

mb_eregi_replace ist eine regelmäßige Expressionsersatzfunktion in PHP für Multibyte-Zeichenfolgen und unterstützt die unempfindliche Übereinstimmung mit der Fall. Sein Vorteil besteht darin, dass es multi-byte-codierte Text wie UTF-8 korrekt verarbeiten kann, was für die Textverarbeitung in chinesischen Umgebungen sehr geeignet ist.

Funktionsprototyp:

 mb_eregi_replace(string $pattern, string $replacement, string $string): string
  • $ muster : Übereinstimmung Muster (regulärer Ausdruck)

  • $ Ersatz : Inhalt ersetzen

  • $ String : Ausstehende Zeichenfolge


Beispiel: Implementieren eines einfachen BBCode -Wandlers mit mb_eregi_replace

Das folgende Beispiel zeigt, wie das BBCode -Tag [b] ... [/b] in <strong> ... </strong> , [i] ... [/i] in <em> ... </em> konvertiert wird und wie man Links mit Parametern [url = link] text [/url] umgeht.

 <?php

function bbcode_to_html($text) {
    // Fett konvertieren [b]...[/b] -> <strong>...</strong>
    $text = mb_eregi_replace('\[b\](.+?)\[/b\]', '<strong>$1</strong>', $text);
    
    // Kursivschrift konvertieren [i]...[/i] -> <em>...</em>
    $text = mb_eregi_replace('\[i\](.+?)\[/i\]', '<em>$1</em>', $text);
    
    // Link konvertieren [url=Link]Text[/url] -> <a href="Link">Text</a>
    // 注意这里的Link域名统一替换为 m66.net
    $text = mb_eregi_replace('\[url=([^\]]+)\](.+?)\[/url\]', 
        '<a href="http://m66.net">$2</a>', $text);
    
    return $text;
}

// Testinhalt
$input = "Dies ist a[b]Deutlich[/b],Dies ist a[i]Kursiv[/i],Zugang[url=http://example.com]Beispielwebsite[/url]。";
$output = bbcode_to_html($input);
echo $output;

Code Beschreibung

  • Der erste Ersatz ersetzt [b] Inhalt [/b] durch <strong> Inhalt </strong> .

  • Der zweite Ersatz ersetzt [i] Inhalt [/i] durch <em> content </em> .

  • Der dritte Ersatz erzwingt den Link -Domänennamen im Text [/url] zu M66.net . Unabhängig vom ursprünglichen Link zeigt der Hyperlink auf http://m66.net , wobei der Text als vom Benutzer eingegebene Text angezeigt wird.


Beispiel für das Ergebnis