我有一个情况。我使用这段代码使用 php 阅读了一个 html 页面$body = file_get_contents('index.htm');
现在在 index.htm 文件中有一段 html 代码,如下所示,我有时需要删除/取决于标准,所以有时需要删除,有时不需要。
<td><table><tr><td></td></tr></table></td>
如何使用PHP删除td标签之间的整个表格部分。
我有一个情况。我使用这段代码使用 php 阅读了一个 html 页面$body = file_get_contents('index.htm');
现在在 index.htm 文件中有一段 html 代码,如下所示,我有时需要删除/取决于标准,所以有时需要删除,有时不需要。
<td><table><tr><td></td></tr></table></td>
如何使用PHP删除td标签之间的整个表格部分。
如果您足够幸运,您的页面是 XML,那么您可以形成一个 DOM 并从 DOM 中删除。否则,只要您没有嵌套<table>
s ,正则表达式应该很容易(在这种情况下,它仍然是可能的,但更棘手)。
一种方法可以是
$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>'
没有表格部分
您可以使用正则表达式替换删除td之间的表。
$html=preg_replace('/<td([^>]*)><table[^>]*>.*<\/table><\/td>/', '<td$1></td>', $html);
这也适用于你的属性或在您的
我自己尝试过(RegEx Tester)并且它有效,希望它也适用于你。