我最近一直在重写我的网站,并添加了一个语法荧光笔,以便我可以发布代码片段。在此之前,我所做的只是htmlentities()
字符串,以便它是安全的而不会破坏任何内容,但现在我必须使用<pre>
突出显示代码,htmlentites()
有效地删除了语法从页面突出显示。我一直试图想出一个函数,只对两个标记之间的任何内容执行htmlentites()
(<entitiesparse>
</entitiesparse>
),但似乎没有任何效果。有没有人知道我可以使用的功能:
a)将其设置为htmlentities()
除特定标签以外的所有内容(例如strip_tags()
)
OR
b)某些标签中只有htmlentities()
件事(如上所述)
答案 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}