Aktueller Standort: Startseite> Neueste Artikel> Wie konvertiere ich BBCode in HTML über preg_replace_callback_array?

Wie konvertiere ich BBCode in HTML über preg_replace_callback_array?

M66 2025-06-15

In PHP ist BBCode eine leichte Markup -Sprache, die häufig in Foren, Message Boards usw. verwendet wird. Sie erreicht eine einfache Textformatierung durch einen einfachen Satz von Markup. Zu den gemeinsamen Formaten der BBCode -Syntax gehören Bezeichnungen wie [b] (fett), [i] (italisch), [url] (Link). Um BBCode in HTML umzuwandeln, können Sie die integrierte reguläre Expressionsfunktion von PHP preg_replace_callback_array verwenden, um dies zu erreichen.

1. Was ist preg_replace_callback_array ?

preg_replace_callback_array ist eine regelmäßige Ersatzfunktion von PHP, die Zeichenfolgen ersetzen kann, indem verschiedene Rückruffunktionen gemäß verschiedenen Mustern angepasst werden. Dies macht es sehr nützlich, wenn es sich um komplexe String -Conversions handelt, insbesondere wenn auf der Grundlage verschiedener Regeln mehrere Substitutionen erforderlich sind.

2. Wie kann man BBCode in HTML konvertieren?

Wir können preg_replace_callback_array in Kombination mit regulären Ausdrücken verwenden, um BBCode -Tags einzeln abzustimmen, und sie durch Rückruffunktionen in entsprechende HTML -Tags umwandeln. Das Folgende ist ein Beispiel für die Implementierung von BBCode in HTML.

 <?php

function bbcodeToHtml($text) {
    // Definition BBCode Konvertieren zu HTML Regeln von
    $patterns = [
        // Deutlich [b]Etikett
        '/\[b\](.*?)\[\/b\]/is' => function($matches) {
            return '<strong>' . $matches[1] . '</strong>';
        },
        // Kursiv [i]Etikett
        '/\[i\](.*?)\[\/i\]/is' => function($matches) {
            return '<em>' . $matches[1] . '</em>';
        },
        // Hyperlink [url]Etikett
        '/\[url=(.*?)\](.*?)\[\/url\]/is' => function($matches) {
            // ersetzen URL Der Domain -Name ist m66.net
            $url = str_replace(parse_url($matches[1], PHP_URL_HOST), 'm66.net', $matches[1]);
            return '<a href="' . $url . '">' . $matches[2] . '</a>';
        },
        // Bild [img]Etikett
        '/\[img\](.*?)\[\/img\]/is' => function($matches) {
            return '<img src="' . $matches[1] . '" alt="Image">';
        },
    ];

    // verwenden preg_replace_callback_array 进行ersetzen
    return preg_replace_callback_array($patterns, $text);
}

// Beispiel BBCode eingeben
$bbcode = "[b]Hello World[/b] Check out this website: [url=http://example.com]Click here[/url] and this image: [img]http://example.com/image.jpg[/img]";

// Konvertieren zu HTML
$html = bbcodeToHtml($bbcode);
echo $html;

?>
  • Verwandte Tags:

    HTML