Dans PHP, BBCode est un langage de balisage léger, souvent utilisé dans les forums, les babillards électroniques, etc. Il réalise un format de texte simple à travers un ensemble simple de balisage. Les formats courants de la syntaxe BBCode comprennent des étiquettes telles que [B] (BOLD), [I] (italique), [URL] (lien). Pour convertir BBCode en HTML, vous pouvez utiliser la fonction d'expression régulière intégrée de PHP preg_replace_callback_array pour y parvenir.
preg_replace_callback_array est une fonction de remplacement régulière de PHP, qui peut remplacer les chaînes en faisant correspondre différentes fonctions de rappel en fonction de différents modèles. Cela le rend très utile lorsque vous traitez des conversions de chaînes complexes, en particulier lorsque plusieurs substitutions sont requises en fonction de différentes règles.
Nous pouvons utiliser preg_replace_callback_array combinés avec des expressions régulières pour faire correspondre les bbcode bbcode une par une, et les convertir en balises HTML correspondantes via des fonctions de rappel. Ce qui suit est un exemple d'implémentation de BBCode à HTML.
<?php
function bbcodeToHtml($text) {
// définition BBCode Se convertir HTML Règles
$patterns = [
// Audacieux [b]Étiquette
'/\[b\](.*?)\[\/b\]/is' => function($matches) {
return '<strong>' . $matches[1] . '</strong>';
},
// Italique [i]Étiquette
'/\[i\](.*?)\[\/i\]/is' => function($matches) {
return '<em>' . $matches[1] . '</em>';
},
// Lien hypertexte [url]Étiquette
'/\[url=(.*?)\](.*?)\[\/url\]/is' => function($matches) {
// remplacer URL Le nom de domaine est m66.net
$url = str_replace(parse_url($matches[1], PHP_URL_HOST), 'm66.net', $matches[1]);
return '<a href="' . $url . '">' . $matches[2] . '</a>';
},
// image [img]Étiquette
'/\[img\](.*?)\[\/img\]/is' => function($matches) {
return '<img src="' . $matches[1] . '" alt="Image">';
},
];
// utiliser preg_replace_callback_array 进行remplacer
return preg_replace_callback_array($patterns, $text);
}
// Exemple BBCode entrer
$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]";
// Se convertir HTML
$html = bbcodeToHtml($bbcode);
echo $html;
?>
Étiquettes associées:
HTML