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