如何删除所有样式属性BUT NOT TO REMOVE
样式属性
表格中提供 - PHP
例如:
<div style="text-align: justify; text-indent: -13.5pt; ><strong>Motion with Constant Acceleration</strong></div>
<table cellspacing="0" cellpadding="0" border="1" style="border: medium none; border-collapse: collapse;">
<tr><td width="114" style="border: 1pt;"><div align="center"> </div></td>
<td width="264" style="border-width: 1pt 1pt 1pt medium;" colspan="2">Data Sheet</td>
<td width="157" style="border-width: 1pt 1pt 1pt medium;"><div align="center"> </div></td>
</tr>
<tr style="height: 0.4in;"><td width="114" style="border-width: medium 1pt 1pt;"><div align="center"> </div></td>
<td width="156" style="border-width: medium 1pt 1pt medium;">Incline angle</td>
<td width="108" style="border-width: medium 1pt 1pt medium;"><div align="center"> </div></td>
<td width="157" style="border-width: medium 1pt 1pt medium;"><div align="center"> </div></td>
</tr>
</table>
我的输出应该是这样的(注意div标签):
<div><strong>Motion with Constant Acceleration</strong></div>
<table cellspacing="0" cellpadding="0" border="1" style="border: medium none; border-collapse: collapse;">
<tr><td width="114" style="border: 1pt;"><div align="center"> </div></td>
<td width="264" style="border-width: 1pt 1pt 1pt medium;" colspan="2">Data Sheet</td>
<td width="157" style="border-width: 1pt 1pt 1pt medium;"><div align="center"> </div></td>
</tr>
<tr style="height: 0.4in;"><td width="114" style="border-width: medium 1pt 1pt;"><div align="center"> </div></td>
<td width="156" style="border-width: medium 1pt 1pt medium;">Incline angle</td>
<td width="108" style="border-width: medium 1pt 1pt medium;"><div align="center"> </div></td>
<td width="157" style="border-width: medium 1pt 1pt medium;"><div align="center"> </div></td>
</tr>
</table>
答案 0 :(得分:0)
用正则表达式解析/破解HTML的坏主意。您可以尝试以下方式:
s/(?<!table[^>])style=".*"//
含义:当尝试向后匹配时,没有任何东西替换style =“”,在任何&gt;之前没有表格字符。
可能需要一些微调工作,但是没试过,我仍然认为这是一个坏主意。
微调,我建议看look-behind in regex。我不知道php regex是否支持lookbehind,由你来检查,这是一个骨架,而不是一个完整的答案。
答案 1 :(得分:0)
为了正确地做到这一点,我建议使用html净化器:http://htmlpurifier.org/,它是唯一具有安全和防弹方式处理这些方法的高度可配置的html解析器之一。
您可以使用允许的属性来测试它: http://htmlpurifier.org/demo.php
配置文档: http://htmlpurifier.org/live/configdoc/plain.html#CSS.AllowedProperties