Создать оглавление из определенных тегов BBCode в строке - PullRequest
0 голосов
/ 02 июня 2011

у меня есть этот код в качестве моего bbcode

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

не хочу, чтобы код php учитывал [box] tage в моем коде и отображал его как оглавление

пример

[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 ]

1 голос
/ 02 июня 2011

Написать парсер. Вы можете использовать регулярные выражения, но это уродливо.

Я думаю, что это настолько специфично, насколько это возможно, без необходимости писать одну строчку кода: D

0 голосов
/ 02 июня 2011

Вы ищете preg_replace в вашей строке:

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

Парены в регулярном выражении будут «захватывать» строку внутри, и вы можете ссылаться на них с помощью $ index (отсюда $ 1 и $ 2 в разделе замены кода).

...