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.
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
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;
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.