dqsa17330 2015-04-03 19:51
浏览 60
已采纳

如何通过preg_replace替换bbcode来标记HTML?

I have bbcodes at page:

[list=1]
[*]Камиль [/*]
[*]Хисматуллин [/*]
[*]живет в настоящий [/*]
[/list]

How I can replace these bbcodes to HTML tags:

<ul>
<li></li>
<li></li>
<li></li>
</ul>

I tried regular expression:

$advanced_bbcode = array(
 '#\[list=([0-9]?)](.+)\[/list]#Usi',
 '#\[*](.+)\[/*]#Usi'
);

$advanced_html = array(
   '<ol>$1</ol>',
   '<li>$1</li>'
);

$text = preg_replace($advanced_bbcode, $advanced_html,$text);
  • 写回答

2条回答 默认 最新

  • dou9022 2015-04-03 20:03
    关注

    You need to adjust the regex a bit (add the Singleline inline (?s) option that can be combined with case-insensitive (?i) option), the rest is neat. Only I do not know if you need <ol> or <ul> (you can adjust that part yourself). Here is my solution (tested on TutorialsPoint):

    <?php
    
       $str = "[list=1]
    [*]Камиль [/*]
    [*]Хисматуллин [/*]
    [*]живет в Урюпинске [/*]
    [/list]"; 
    
       $advanced_bbcode = array(
         '/(?si)\\[list=\\d+\\](.*?)\\[\\/list\\]/',
         '/(?si)\\[\\*\\](.*?)\\[\\/\\*\\]/'
        );
        $advanced_html = array(
          '<ol>$1</ol>',
          '<li>$1</li>'
        );
        $text = preg_replace($advanced_bbcode, $advanced_html, $str);
        echo $text;
    ?>
    

    Output:

    <ol>                                                                                                                                                                
    <li>Камиль </li>                                                                                                                                                    
    <li>Хисматуллин </li>                                                                                                                                               
    <li>живет в Урюпинске </li>                                                                                                                                         
    </ol>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀