preg_replace('/\[quote\=(.*?);(.*?)\](.*?)\[\/quote\]/ms', '<blockquote>Posted by: \1 at \2.<br/>\3</blockquote>', $text);
这是我用来替换[quote=user;id]content[/quote]
bbcode的方法。无论如何,如果帖子中有一个引用,它只能正常工作。
如果我得到了:
[quote=user1;1] [quote=user0;0]some content here[/quote]
this is my reply to user0 post[/quote]
它只会替换第一个引号,而其他引号只会被<blockquote>
替换。
我该如何解决?
答案 0 :(得分:1)
测试,修复版
<?php
$out = '[quote=user1;1] [quote=user0;0]some content here[/quote]this is my reply to user0 post[/quote]';
$cnt = 1;
while($cnt != 0){
$out = preg_replace('/\[quote\=(.*?);(.*?)\](.*?)\[\/quote\]/ms', '<blockquote>Posted by: \1 at \2.<br/>\3</blockquote>', $out, -1, $cnt);
}
echo $out;