bbcode php代码和使用php或javascript库突出显示的源代码

问题描述 投票:0回答:1

我有一个自定义的PHP网站,我想发布PHP片段,但我想突出我的源代码。我尝试通过纯PHP使用Geshihttps://github.com/GeSHi/geshi-1.0),但它不是我想要的,所以我对其他库如Google Code Prettifyhttps://github.com/google/code-prettify)感兴趣,但我不知道如何使用这个JavaScript库。

<link rel="stylesheet" type="text/css" media="all" href="gcp/prettify.css">
<script src="gcp/prettify.js" type="text/javascript"></script>

<body onload="prettyPrint()">

$body = preg_replace('#\[code\](.*)\[/code\]#isU', '<div class="code"><span class="xcode"><code class="prettyprint">\1</code></span></div>', $body);

我是否正确使用Google Code Prettify

另一个问题,我在Regular Expression使用正确的bbcode吗?

任何帮助表示赞赏!

php regex syntax-highlighting bbcode
1个回答
2
投票

使用的更好的函数是preg_replace_callback(),因为您可以将匹配的文本传递给回调函数以进行重新格式化。

这是一个示例实现:(这可能需要一些调整,但你应该得到这个想法)

function code_tag_replace( $matches ) {
    $ret  = '<TABLE WIDTH="100%" CELLSPACING="0" CELLPADDING="10" CLASS="code" BORDER="0"><TR><TD><SPAN CLASS="xcode">';
    $ret .= SyntaxHighlight::process( $matches[1] );
    $ret .= '</SPAN></TD></TR></TABLE>';
    return $ret;
}
$body = preg_replace_callback(
    '#\[code\](.*)\[/code\]#isU',
    'code_tag_replace',
    $body
);
© www.soinside.com 2019 - 2024. All rights reserved.