Php 嵌套bb代码引用如何>;
嗨,我使用一个非常基本的bbcode解析器 你们能帮我解决一个问题吗 但举例来说,如果写下:Php 嵌套bb代码引用如何>;,php,bbcode,quote,Php,Bbcode,Quote,嗨,我使用一个非常基本的bbcode解析器 你们能帮我解决一个问题吗 但举例来说,如果写下: [quote=tanab][quote=1][code]a img{ text-decoration: none; }[/code][/quote][/quote] 输出如下: tanab said: [quote=1] a img{ text-decoration: none; } [/quote] 我该怎么去修理它呢?我真的不擅长所有的准备工作 这是我的解析器: function bb
[quote=tanab][quote=1][code]a img{
text-decoration: none;
}[/code][/quote][/quote]
输出如下:
tanab said:
[quote=1]
a img{
text-decoration: none;
}
[/quote]
我该怎么去修理它呢?我真的不擅长所有的准备工作
这是我的解析器:
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);
函数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=数组(
'$1',
'$1',
'',
'',
'$1',
“- <1美元”,
' ',
“$1表示:$2”,
);
返回preg_replace($search,$replace,$input);
}这可以通过递归正则表达式进行调整:
'/\[quote=(.*?)\](((?R)|.*?)+)\[\/quote\]/is'
这将至少确保输出div不会被错误嵌套。但是您仍然需要运行两到三次正则表达式才能捕获所有报价块
否则它将需要使用重写代码。我不想费心去展示,因为这已经出现了几十次(试试网站搜索!),以前已经解决了,等等。看在上帝的份上,我可以建议你吗?你想解决什么问题?有什么问题吗?可能是重复的