Если вы не возражаете против правильности, то можете использовать простую замену строк и заменять каждый тег отдельно. Вот несколько примеров использования PHP * str_replace
для замены открывающих и закрывающих тегов:
$str = str_replace('[quote]', '<blockquote>', $str);
$str = str_replace('[/quote]', '</blockquote>', $str);
Или с помощью регулярного выражения (снова PHP):
$str = preg_replace('~\[(/?)quote]~', '<$1blockquote>', $str);
Здесь совпадения \[(/?)quote]
заменяются на <$1blockquote>
, где $1
заменяется совпадением первой группы шаблона ((/?)
, либо /
, либо пусто).
Но вы действительно должны использовать парсер, который отслеживает открывающие и закрывающие теги. В противном случае у вас может быть открывающий или закрывающий тег, который не имеет аналога или (если вы используете дополнительные теги), который не вложен должным образом.