2011-05-23 75 views
0

我无法理解这一点,我真的可以使用一些帮助。preg_replace help - 需要用HTML代替[list] .. [/ list]

我想

<ul><li>line 0</li> 
<li>line 1</li> 
<li>line 2</li> 
</ul> 

更换这样

[list]line 0 
line 1 
line 2 
[/list] 

文本可以在字符串中多次出现,这将是巨大的,如果它能够避免增加空单元素。

回答

3

这是我特别的BBParser。花了很多时间。

http://pastebin.com/3MRYRd8k

使用方法如下:

$parse = new bbParse(); 
$pageContent = $parse->bbtohtml($dbContent); 
+0

谢谢,它取代了[/ list]标签,但[名单]标签保持它的方式。当我删除\ r \ n字符时,它也会替换[list]标签,但它不会在这些标签之间的每一行周围插入

  • 。 – 2011-05-23 03:12:56

    +0

    好吧,我想通了,它预计在每一行的开始[*]。这实际上是有道理的。谢谢。 – 2011-05-23 03:21:23

    +0

    如何在一个PHP文件中使用它两次?如果我尝试使用它两次,它会报告致命错误:无法重新声明htmltags()(以前在bbparser.php中声明:85) – 2011-05-23 03:52:31

    1
    preg_replace('#[list](.*?)[/list]', $data, $list); 
    $list[1] = explode("\n", $list); 
    $html = '<ul>'; 
    
    foreach($list[1] as $li){ 
        $html .= '<li>'.$li.'</li>'; 
    } 
    $html .= '</ul>';