Итак, я использую это заменить BBCode в HTML:PHP preg_replace на правильный
$text = htmlspecialchars($text);
$advanced_bbcode = array(
'#\[quote](\r\n)?(.+?)\[/quote]#si',
'#\[url](.+)\[/url]#Usi');
$advanced_html = array(
'<blockquote class="quote">$2</blockquote>',
'<a rel="nofollow" target="_blank" href="$1">$1</a>');
$text = preg_replace($advanced_bbcode, $advanced_html,$text);
echo nl2br($text);
public static function nl2br($var)
{
return str_replace(array('\\r\\n','\r\\n','r\\n','\r\n', '\n', '\r'), '<br />', nl2br($var));
}
Это прекрасно работает, если у меня есть только 1 котировку, но если я использую несколько цитат, как: [quote][quote][quote]first[/quote]second[/quote]end[/quote]
Я ожидаю, чтобы получить:
<blockquote class="quote"><blockquote class="quote"><blockquote class="quote">first</blockquote>second</blockquote>end</blockquote>
Но поскольку она занимает первое [/ qoute] он превратится в:
<blockquote class="quote">[quote][quote]first</blockquote>second[/quote]end[/quote]
Я искал его, но я не могу найти что-нибудь, что работает для меня. Я новичок в этом.
Спасибо.
используйте современные решения для BBCode, я рекомендую мою собственную библиотеку https://github.com/thunderer/Shortcode. С удовольствием отвечаю на любые вопросы. –