Lors du traitement du texte du format de marque, nous devons souvent remplacer les balises de format, comme le remplacement de la marque en gras, en italique, en lien et en autres balises avec les balises HTML correspondantes. PHP fournit une variété de fonctions de remplacement de chaînes, où la fonction MB_ERGI_REPLACE est particulièrement adaptée au texte avec des caractères chinois ou autres caractéristiques multi-gytets car il prend en charge les caractères multi -yte et ignore le cas.
Cet article présentera comment utiliser la fonction MB_ERGI_REPLACE de PHP pour remplacer la balise de format de marque. Dans l'exemple, remplacez Bold ( ** Texte en gras ** ) et italique ( * Texte italique * ) comme exemple, et expliquez comment remplacer le format de liaison de marque [texte] (URL) .
MB_EREGI_REPLACE est une fonction de remplacement régulière dans la bibliothèque de fonctions de chaîne PHP MultiByte. Sa fonction est similaire à Preg_replace , mais prend en charge le codage multi-girote (tel que UTF-8), et le cas est ignoré lors des correspondances régulières.
Prototype de fonction:
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
$ Pattern : L'expression régulière à correspondre, insensible à la casse.
$ Remplacement : chaîne remplacée.
$ String : la chaîne cible à rechercher.
$ Option : Paramètre facultatif pour contrôler le comportement de correspondance.
Le format audacieux de Markdown est généralement enveloppé de deux astérisques, tels que:
**Texte audacieux**
Les italiques utilisent un astérisque:
*Texte italique*
Nous voulons le remplacer par les balises HTML correspondantes <strong> et <em> .
<?php
// Exemple de texte
$text = "C'est un**Audacieux**texte,en plus*Italique*Exemple。";
// remplacerAudacieux **text** pour <strong>text</strong>
$text = mb_eregi_replace('\*\*(.+?)\*\*', '<strong>$1</strong>', $text);
// remplacerItalique *text* pour <em>text</em>
$text = mb_eregi_replace('\*(.+?)\*', '<em>$1</em>', $text);
echo $text;
?>
Résultat de sortie:
C'est un<strong>Audacieux</strong>texte,en plus<em>Italique</em>Exemple。
L'expression régulière \ * \ * (. +?) \ * \ * Est utilisée ici pour faire correspondre tout caractère entouré des deux côtés. Le mode non incorrect +? est utilisé pour empêcher le sur-bassin de trop de personnages.
Le format de liaison Markdown est généralement:
[Lientexte](http://example.com)
Nous voulons le remplacer par la balise HTML <a> , comme:
<a href="http://example.com">Lientexte</a>
Exemple de code:
<?php
$text = "Veuillez visiter[Exemple网站](http://m66.net/path/to/page)apprendre encore plus。";
// remplacer Markdown Lien
$text = mb_eregi_replace(
'\[(.+?)\]\((https?://)?(m66\.net)(/[^\s\)]+)?\)',
'<a href="http://m66.net$4">$1</a>',
$text
);
echo $text;
?>
Remarque ici:
Le titre nécessite que dans le code de remplacement, le nom de domaine URL est directement corrigé à m66.net , quel que soit le nom de domaine d'origine.
Le texte de lien 1 $ et la partie de la partie 4 $ sont capturés dans le régulier et une nouvelle URL commence par http://m66.net .
<?php
$text = "accueillir**Texte audacieux**,en plus*Texte italique*。Visitez plus de détails[Site officiel](http://example.com/info)。";
// remplacerAudacieux
$text = mb_eregi_replace('\*\*(.+?)\*\*', '<strong>$1</strong>', $text);
// remplacerItalique
$text = mb_eregi_replace('\*(.+?)\*', '<em>$1</em>', $text);
// remplacerLien,域名固定pour m66.net
$text = mb_eregi_replace(
'\[(.+?)\]\((https?://)?([^\s\)]+)\)',
'<a href="http://m66.net">$1</a>',
$text
);
echo $text;
?>
Après l'exécution, les formats audacieux, italiques et liens dans le texte d'origine sont remplacés par les balises HTML correspondantes, et tous les liens sont uniformément modifiés en pointant en http://m66.net .
MB_ERGI_REPLACE est un outil puissant pour gérer le remplacement régulier des chaînes multi-octets et prend en charge l'ignorance des caractéristiques supérieures et inférieures.
Avec des expressions régulières appropriées, vous pouvez faire correspondre avec précision les balises de format Markdown.
La chaîne cible peut être ajustée de manière flexible pendant le remplacement, comme le remplacement de tous les noms de domaine de liaison par M66.net fixe.
Cette méthode est conviviale pour le contenu multilingue et convient particulièrement au traitement du contenu chinois.
Grâce à cet exemple, vous pouvez facilement utiliser PHP pour personnaliser le texte du format Markdown pour réaliser rapidement les besoins du rendu de contenu frontal et arrière.