我想在
HTML页面中显示异常跟踪.
一种方法是在异常跟踪中转义HTML特殊字符并将其转储到< pre>内.标签.
虽然它有效,但效率非常低.我认为一种方法是用CDATA包裹跟踪.我试过了,但没有显示出来.
我的问题,这可以做到吗?
这是我的微弱尝试.
<pre><![CDATA[blah,blah,blah with <> and blah blah blah with & and more blah,blah]]></pre>
解决方法
只有当你以XML格式提供页面时才会起作用(application / xhtml xml);纯HTML中没有CDATA部分. HTML模式下的大多数浏览器都会忽略示例CDATA部分.
并抛出<![CDATA [...]]>无论如何,围绕一个字符串不足以包裹它.如果您的跟踪信息具有序列]]>在它,这将结束CDATA部分,你会回到同样的问题.所以你必须至少做一次逃脱以应对这种情况,如果你要做一个逃避过程,你也可以做一个正确的HTML逃脱.
这就是CDATA部分在很大程度上毫无意义的原因.许多人似乎认为它在某种程度上贬低了他们考虑逃避问题,但事实并非如此.
无论如何,HTML转义并不是低效的.这是几个字符串替换.任何Web应用程序(*)都会在每个页面上进行一百次HTML转义.再添加一个 – 特别是对于效率根本不重要的调试案例! – 没有很大的负担.
(*:好吧,除了来自PHP教程的写得不好的应用程序,其作者从未听说过htmlspecialchars,显然.)