我有一个从数据库获取用户提交的HTML代码的函数:
function Code($code)
{
return "<pre><code>".nl2br(htmlspecialchars($code))."</code></pre>";
}
我会这样称呼它
echo code($query->row('html'));
. 我知道我的问题缺乏“深度”,但这是最好的方法吗?或者,是否可以解析输出的格式(例如,javascript注入),或者在某些机器上不能正确输出?
谢谢!
杰克
编辑:我有一个新的(相关的)问题
:我想用突出显示字符串
highlight_string()
. 但是,我不能让它正常工作。我
认为
我明白原因,但我不太确定如何纠正。
function Code($code)
{
return "<pre><code>".highlight_string(nl2br(htmlspecialchars($code)))."</code></pre>";
}
你可以从中看到我正在使用
突出显示_string()
就这一切。但是,输出根本没有突出显示,而是作为字符实体输出。(
<
,‘等等’等等。如果我将函数顺序重组为:
return "<pre><code>".nl2br(htmlspecialchars(highlight_string($code)))."</code></pre>";
我发现字符实体没有输出,但字符串仍然没有突出显示。为了澄清,我也没有会影响文本颜色的CSS格式。另外,我已经检查了我的PHP设置,其中明确地突出显示了指定的颜色。