我有这种情况。我在使用PHP阅读html页面使用这段代码$body = file_get_contents('index.htm');
如何使用PHP删除HTML页面中的一段HTML标记
现在在index.htm文件中是一段如下所示的html代码,我有时需要删除/取决于条件,所以有时需要删除和其他时间不。
<td><table><tr><td></td></tr></table></td>
如何删除使用PHP的TD标签之间的整个表部分。
我有这种情况。我在使用PHP阅读html页面使用这段代码$body = file_get_contents('index.htm');
如何使用PHP删除HTML页面中的一段HTML标记
现在在index.htm文件中是一段如下所示的html代码,我有时需要删除/取决于条件,所以有时需要删除和其他时间不。
<td><table><tr><td></td></tr></table></td>
如何删除使用PHP的TD标签之间的整个表部分。
一种方式做到这一点可以
$str = '<td><table><tr><td></td></tr></table></td>';
preg_match('/(<td>)(<table>.*<\/table>)(<\/td>)/',$str,$matches);
结果数组
Array
(
[0] => <td><table><tr><td></td></tr></table></td>
[1] => <td>
[2] => <table><tr><td></td></tr></table>
[3] => </td>
)
可用于重建
'<td></td>'
不表款
如果你足够幸运,你的页面是XML,那么你可以形成一个DOM,并从DOM中删除。否则,只要你没有嵌套<table>
s(在这种情况下它仍然可能,但更棘手),正则表达式应该很容易。
你可以删除t他表之间td的使用正则表达式替换。如果您有属性在或在您的
我没有尝试过自己(RegEx Tester)和它的作品,希望它也适用于您
$html=preg_replace('/<td([^>]*)><table[^>]*>.*<\/table><\/td>/', '<td$1></td>', $html);
这也适用。
如果您使用递归环视,也可以在嵌套中获得。 – eyelidlessness 2009-07-28 10:04:48
呃,递归*和*看起来。当然,这些并不是严格的“常规”,它们是PCRE的扩展。 – eyelidlessness 2009-07-28 10:05:23