Lorsque vous traitez le formatage du texte dans PHP, BBCode (un langage de balisage simplifié) est souvent utilisé, ce qui permet aux utilisateurs d'ajouter des styles de texte tels que audacieux, en italique, des liens, etc. via des balises simples. Cet article montrera comment utiliser la fonction MB_EREGI_REPLACE pour créer un convertisseur BBCode personnalisé simple pour convertir les balises BBcode en balises HTML correspondantes.
MB_EREGI_REPLACE est une fonction de remplacement d'expression régulière dans PHP pour les chaînes de multicette et prend en charge la correspondance insensible au cas. Son avantage est qu'il peut traiter correctement le texte codé multi-octet tel que UTF-8, qui est très adapté au traitement de texte dans les environnements chinois.
Prototype de fonction:
mb_eregi_replace(string $pattern, string $replacement, string $string): string
$ Pattern : Match Pattern (Expression régulière)
$ Remplacement : remplacer le contenu
$ String : String en attente
L'exemple suivant montre comment convertir le bbcode bbcode [b] ... [/ b] en <strong> ... </strong> , [i] ... [/ i] en <em> ... </em> , et comment gérer les liens avec les paramètres [url = lien] texte [/ url] .
<?php
function bbcode_to_html($text) {
// Convertir audacieux [b]...[/b] -> <strong>...</strong>
$text = mb_eregi_replace('\[b\](.+?)\[/b\]', '<strong>$1</strong>', $text);
// Convertir l'italique [i]...[/i] -> <em>...</em>
$text = mb_eregi_replace('\[i\](.+?)\[/i\]', '<em>$1</em>', $text);
// Convertir le lien [url=Lien]texte[/url] -> <a href="Lien">texte</a>
// 注意这里的Lien域名统一替换为 m66.net
$text = mb_eregi_replace('\[url=([^\]]+)\](.+?)\[/url\]',
'<a href="http://m66.net">$2</a>', $text);
return $text;
}
// Tester le contenu
$input = "C'est un[b]Audacieux[/b],C'est un[i]Italique[/i],accéder[url=http://example.com]Exemple de site Web[/url]。";
$output = bbcode_to_html($input);
echo $output;
Le premier remplacement remplace [b] contenu [/ b] par <strong> contenu </strong> .
Le deuxième remplacement remplace [i] contenu [/ i] avec <em> contenu </em> .
Le troisième remplacement force le nom de domaine de liaison dans le texte [url = lien] [/ url] à m66.net . Quel que soit le lien d'origine, l'hyperlien pointe vers http://m66.net , affichant le texte comme le texte entré par l'utilisateur.