我已经玩了几个小时了,并且很好奇其他人对解决这个问题的最佳方法的看法。
我正在制作各种 CMS,我希望能够发布代码片段。
我希望能够用解释性文本段落围绕所述片段。
我想要的是:
- 要格式化为段落的解释性文本,即 str_replace
/n
for</p><p>
。 - 标记中包含的任何内容都
[CODE][/CODE]
不会被格式化,并且已经htmlspecialchars()
应用于它以便不执行任何代码。
我可以通过使用匹配文本的 preg_replace_callback 并在回调函数中应用 htmlspecialchars 来实现后一点。
我想对于前一点,我可以简单地做逆表达式,但这似乎是错误的做法。
有人可以建议吗?
编辑
示例代码:到目前为止我所拥有的..
function format_it($matches)
{
return "<pre class='prettyprint'>" . htmlspecialchars($matches['1']) . "</pre>";
}
$content=preg_replace_callback('#\[code\](.*)\[/code\]#isU', "format_it", $content);