PHP:htmlentities / strip_tags

时间:2012-07-29 20:35:49

标签: php syntax-highlighting html-entities

我最近一直在重写我的网站,并添加了一个语法荧光笔,以便我可以发布代码片段。在此之前,我所做的只是htmlentities()字符串,以便它是安全的而不会破坏任何内容,但现在我必须使用<pre>突出显示代码,htmlentites()有效地删除了语法从页面突出显示。我一直试图想出一个函数,只对两个标记之间的任何内容执行htmlentites()<entitiesparse> </entitiesparse>),但似乎没有任何效果。有没有人知道我可以使用的功能:

a)将其设置为htmlentities()除特定标签以外的所有内容(例如strip_tags()

OR

b)某些标签中只有htmlentities()件事(如上所述)

1 个答案:

答案 0 :(得分:0)

您只需将htmlentities()应用于原始内容即可。因此,您可以将htmlentities()应用于原始内容(文章文本),然后调用函数以在此之后添加语法突出显示。只要您检查语法突出显示代码不会引入意外的恶意代码,您就不需要再次调用htmlentities()

如果您说使用a元素突出显示代码,我强烈建议您改用code元素,它旨在为编程代码的行或块提供标记。 a元素只能用作超链接的锚点。

例如,您可以使用

<code class="highlighted-code">/* line of code here /*</code>

然后,您可以使用级联样式表为类型等于“highlight-code”的code类型的任何元素提供背景颜色,例如:

code.highlighted-code {background-color: yellow}