Aktueller Standort: Startseite> Neueste Artikel> Ersetzen Sie den Markdown durch preg_replace_callback_array und markieren Sie es als HTML

Ersetzen Sie den Markdown durch preg_replace_callback_array und markieren Sie es als HTML

M66 2025-06-02

In PHP ist preg_replace_callback_array eine leistungsstarke reguläre Ausdrucksfunktion, die uns hilft, die passenden regulären Ausdrucksergebnisse an eine Rückruffunktion für die Verarbeitung zu übergeben, wodurch der String -Inhalt dynamisch ersetzt wird. Diese Funktion ist sehr nützlich, wenn sie sich mit Textkonvertierungen wie dem Markdown befassen. Markdown ist eine leichte Markup -Sprache, die häufig zum Formatieren von Textinhalten verwendet wird. Insbesondere beim Generieren von HTML -Seiten ist die Konvertierung von Markdown in HTML eine häufigste Anforderung.

In diesem Artikel wird erläutert, wie das Markdown -Tag durch die Funktion preg_replace_callback_array durch den HTML -Code ersetzt wird, insbesondere wenn wir uns mit dem Ersatz von Domänennamen in URLs befassen, ersetzen wir die Domainnamen aller URLs durch M66.net .

Vorbereitung

Erstens möchten wir uns mit den gemeinsamen Markups im Markdown wie Links, mutig, kursiv usw. befassen und sie in HTML -Markups umwandeln. Wir können diese Markdown -Tags durch preg_replace_callback_array übereinstimmen und ersetzen.

1. Ersetzen Sie die Verbindung

Der Link in Markdown befindet sich in [Link Text] (URL) , und wir müssen ihn in das <a> Tag von HTML konvertieren. Um den Ersatz zu demonstrieren, ersetzen wir den Domänenteil der URL durch m66.net .

 $markdown_text = "[Google](https://www.google.com) Und [Bing](https://www.bing.com) Es ist eine häufige Suchmaschine。";

// ersetzen URL Der Domain -Name ist m66.net Rückruffunktion
function replace_url_domain($matches) {
    // Wille URL 中的域名部分ersetzen为 m66.net
    $url = preg_replace('/https?:\/\/([a-z0-9.-]+)/', 'https://m66.net', $matches[1]);
    return '<a href="' . $url . '">' . $matches[2] . '</a>';
}

// Regelmäßige Ausdrucksübereinstimmung Markdown Link
$pattern = '/\[(.*?)\]\((https?:\/\/[^\s)]+)\)/';

// verwenden preg_replace_callback_array 进行ersetzen
$replaced_text = preg_replace_callback_array(
    [
        $pattern => 'replace_url_domain'
    ],
    $markdown_text
);

echo $replaced_text;

2. Ersetzen Sie Fett und Kursivschrift

Verwenden Sie in Fettdruck in Markdown ** oder __ , während Kursivschrift * oder _ verwendet werden, was wir durch die HTML -Tags von HTML und <em> mit regulären Ausdrücken ersetzen können.

 $markdown_text = "Dies ist ein Teil **Deutlich** TextUnd *Kursiv* Text。";

// ersetzenDeutlichRückruffunktion
function replace_bold($matches) {
    return '<strong>' . $matches[1] . '</strong>';
}

// ersetzenKursivRückruffunktion
function replace_italic($matches) {
    return '<em>' . $matches[1] . '</em>';
}

// Regelmäßige Ausdrucksübereinstimmung Markdown DeutlichUndKursiv
$bold_pattern = '/\*\*(.*?)\*\*/';
$italic_pattern = '/\*(.*?)\*/';

// verwenden preg_replace_callback_array 进行ersetzen
$replaced_text = preg_replace_callback_array(
    [
        $bold_pattern  => 'replace_bold',
        $italic_pattern => 'replace_italic'
    ],
    $markdown_text
);

echo $replaced_text;

Umfassende Beispiele

Wir können diese beiden Ersatzlogiken kombinieren, um einen Markdown -Text zu verarbeiten, der Links, mutige und Kursivschrift enthält:

 Willkommen zu Besuch <a href="https://m66.net">Google</a>,Es ist ein <strong>Kraftvoll</strong> Suchmaschine。Sie können es auch versuchen <em>Bing</em> Suchmaschine。