从字符串中的特定BBCode标记创建目录

时间:2011-06-02 19:15:37

标签: php bbcode

我将此代码作为我的bbcode

[box=title|id]
text
[/box]

我不希望在我的代码中计算[box] tage的php代码并将其列为内容表

例如

[box=overview of the code|overview]
texttexttext
[/box]

[box=download of the code|download]
texttexttext
[/box]

我希望代码制作地图或内容表,如<a href="#id">title</a>

<a href="#overview">overview of the code</a>
<a href="#download">download of the code</a>

2 个答案:

答案 0 :(得分:1)

编写解析器。你可以使用正则表达式,但这很难看。

我认为这是具体的,我可以不用编写一行代码:D

答案 1 :(得分:0)

您正在寻找字符串上的preg_replace:

preg_replace( "/\[box=([^|]*)\|(\w*)\][\s\w]*\[\/box\]/", "<a href='#$2'>$1></a>", $yourString );

正则表达式中的parens将“捕获”内部的字符串,您可以使用$ index引用它们(因此代码的替换部分中的$ 1和$ 2)。