目前我正在开发一个网站,用户可以在该网站上发布包含源代码示例的文本。
有点像这里的stackoverflow。在那里我可以键入javascript和php、jquery和css以及许多其他语言,它们将在页面上被语法混淆!:)
像这样:
<?php echo "Hello friends";?>
我该如何以最好的方式做到这一点?
我相信您正在寻找Highlight.js;试试看,它的设置和使用相当简单:
基本用法
从页面链接库和样式表,并勾选突出显示到页面加载事件:
<link rel="stylesheet" href="styles/default.css">
<script src="highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>
这将突出显示页面上标记为
<pre><code> .. </code></pre>
的所有代码。
看看这个项目:https://github.com/igorpan/PHPygmentizator
它是一个PHP库,使用Pygments来突出显示各种语言,并支持许多不同的风格。
使用php的htmlsafe
http://php.net/manual/en/function.htmlspecialchars.php
<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // <a href='test'>Test</a>
?>
(我想不起来是什么标志了,但有一个标志可以输出在浏览器中正确呈现的安全ASCII版本)然后使用bootstraps代码类http://twitter.github.com/bootstrap/base-css.html#code