嗨,我正在使用一个非常基本的 bbcode 解析器。
你们能帮我解决我的问题吗?
但是,例如,当这样写时:
[quote=tanab][quote=1][code]a img{
text-decoration: none;
}[/code][/quote][/quote]
输出是这样的:
tanab said:
[quote=1]
a img{
text-decoration: none;
}
[/quote]
我将如何去解决这个问题?我真的不擅长整个 preg_replace 的东西。
这是我的解析器:
function bbcode($input){
$input = htmlentities($input);
$search = array(
'/\[b\](.*?)\[\/b\]/is',
'/\[i\](.*?)\[\/i\]/is',
'/\[img\](.*?)\[\/img\]/is',
'/\[url=(.*?)\](.*?)\[\/url\]/is',
'/\[code\](.*?)\[\/code\]/is',
'/\[\*\](.*?)/is',
'/\\t(.*?)/is',
'/\[quote=(.*?)\](.*?)\[\/quote\]/is',
);
$replace = array(
'<b>$1</b>',
'<i>$1</i>',
'<img src="$1">',
'<a href="$1">$2</a>',
'<div class="code">$1</div>',
'<ul><li>$1</li></ul>',
' ',
'<div class="quote"><div class="quote-writer">$1 said:</div><div class="quote-body">$2</div></div>',
);
return preg_replace($search,$replace,$input);
}