【发布时间】:2011-03-27 18:45:03
【问题描述】:
我有这个函数可以从数据库中获取一些用户提交的 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>";
}
正如你所看到的,我在这一切上都使用了highlight_string()。但是,输出根本没有突出显示,而是作为字符实体输出(&lt;、'>' 等)。如果我将函数排序改组为:
return "<pre><code>".nl2br(htmlspecialchars(highlight_string($code)))."</code></pre>";
我发现字符实体没有输出,但字符串仍然没有突出显示。澄清一下,我也没有会影响应用的文本颜色的 CSS 格式。另外,我检查了我的 PHP 设置,其中肯定有指定的突出显示颜色。
【问题讨论】:
标签: php htmlspecialchars