2011-11-23 29 views
1

我正在重新设计一个网站,其中有一堆标记粘贴在Word中的内容。我想摆脱字体标签的每个实例。MYSQL删除<font> tags and style =“”属性

我也想摆脱通常把与

<span style="font-family:Verdana, etc.;">...</span> 

我要保留所有的一所有串联样式,EM,BR,强大的标签,所以我不想剥夺所有标签都只是影响内容样式的标签。

这个内容全部在MySQL数据库中,MySQL解决方案比PHP解决方案更受欢迎,但我现在可以选择。

回答

1

也许这不是问题的最佳解决方案,但这是我正在做的。我尝试了一些不同的脚本来从数据库获取信息,清理它并用PHP发回,但没有什么效果。我使用的所有东西都弄乱了数据,而不是它的帮助。 GIGO。

我决定使用JavaScript(jQuery的)取出来的<字体>标签的所有属性,并清除所有<跨度>和<p>标签的样式属性。这样做之后一切看起来都很好。所有未来的内容都将正确地进入系统,但所有旧内容仍然存在于数据库中的丑陋代码,该代码已清理得足以在客户端显示。

0

您无法使用RegExp解析HTML,而MySQL用于存储检索数据的&,而不是对其进行过滤。

只需使用http://htmlpurifier.org/即可在PHP中清除您的HTML。

+0

这个解决方案是否会单独离开数据库,只是在从MySQL检索内容之后进行过滤?我宁愿清理一次数据库,而不是过滤每次运行PHP时所提供的内容。 –

+0

你不能完全解析HTML真正的 - 但你可能可以识别足够的模式与正则表达式,使SQL方法作为一次性cliean可行 –

+0

另请参见这个问题的方法做基于正则表达式的替换在MySQL http:// stackoverflow.com/questions/986826/how-to-do-a-regular-expression-replace-in-mysql –