解析没有换行符的自定义[CODE]标签,使用段落格式化所有其他文本

时间:2013-01-15 14:08:25

标签: php preg-replace

我现在已经玩了几个小时了,并且很好奇其他人对最佳方法的看法。

我正在制作各种类型的CMS,我希望能够发布代码段。

我希望能够用解释性文字的段落包围所述片段。

我想要的是:

  • 要格式化为段落的说明文字,即/n的str_replace </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);

0 个答案:

没有答案