我有一个自定义的PHP网站,我想发布PHP片段,但我想突出我的源代码。我尝试通过纯PHP使用Geshi
(https://github.com/GeSHi/geshi-1.0),但它不是我想要的,所以我对其他库如Google Code Prettify
(https://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
吗?
任何帮助表示赞赏!
使用的更好的函数是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
);