目前,我们使用以下代码将[b]...[/b]
BBCode替换为<b>...</b>
:
$s = preg_replace("/\[b\]((\s|.)+?)\[\/b\]/", "<b>\\1</b>", $s);
如果标签之间的内容太大,PHP-FPM子程序会因段错而崩溃。由于我们允许用户编写足够大的文本来引起这种情况,因此如果标记之间的内容超过一定长度,我们需要一些方法来阻止PHP尝试替换它。
如果有其他解决方案,请提出建议。我们当前对脚本的内存限制是128M,这应该足够了。允许的最大帖子长度为50000个字符。