在我写的一个PHP应用程序中,我希望让用户在文本中输入HTML和带尖括号的文本,但是当我显示此文本时,我想让HTML标记由非HTML标记被示为文学作品,例如用户应该能够输入:
<b> 5 > 3 = true</b>
显示时,用户应该看到:
5> 3 =true
什么是解析这个最好的方法,即找到所有非HTML括号,将它们转换为&gt; 和<?
发布于 2018-05-30 14:31:28
我建议让用户输入BBcode风格标记,然后用html标记替换它:
[b]This is bold[/b]
[i]this is italic with a > 'greater than' sign there[/i]
这使你可以更好地控制如何将用户输入解析为html。
发布于 2018-05-30 15:09:04
如果你允许用户输入HTML,那么你必须解决一个比几个未转义的斜角括号更大的问题; HTML非常难以正确验证和过滤,如果你做得不对,你就会面临XSS攻击。
然而,要回答你的问题,将散列角度括号转换为其转义形式的最简单方法是使用DOM / libxml解析HTML,然后对其进行重新序列化。任何使用正则表达式或类似的东西都将注定会因边缘情况而失败。
https://stackoverflow.com/questions/-100000149
复制相似问题