Php 如何使用preg_replace搜索和替换HTML文档中的特定内容区域

Php 如何使用preg_replace搜索和替换HTML文档中的特定内容区域,php,preg-replace,Php,Preg Replace,我有一个HTML文档,其中有一个我想替换的表,但我不知道表的内容是什么,所以我需要搜索开始和结束表标记,然后替换它们之间的内容。我是一个有点n00b的正则表达式,所以我很难想出如何做到这一点。。。有什么想法吗 更新:有问题的HTML对我来说是一个字符串,我不能插入任何额外的数据或以任何方式更改HTML。。。我需要能够在HTML表格的开始和结束处搜索开始和结束模式,然后替换中间的内容。:) 不要为此使用正则表达式,请查看解析器。例如,在DOMDocument实例中加载HTML,使用DOMXPath

我有一个HTML文档,其中有一个我想替换的表,但我不知道表的内容是什么,所以我需要搜索开始和结束表标记,然后替换它们之间的内容。我是一个有点n00b的正则表达式,所以我很难想出如何做到这一点。。。有什么想法吗


更新:有问题的HTML对我来说是一个字符串,我不能插入任何额外的数据或以任何方式更改HTML。。。我需要能够在HTML表格的开始和结束处搜索开始和结束模式,然后替换中间的内容。:)

不要为此使用正则表达式,请查看解析器。例如,在
DOMDocument
实例中加载HTML,使用
DOMXPath
getElementsByTagName
搜索表,并使用
replaceNode
或其他操作函数。使用正则表达式通常是非常不可靠的。

HTML文档是您自己的,还是从另一个站点获取的
文件内容()?如果是第一个,只需将HTML更改为

<html>
 ...
<table>
    <?php echo $tableString ?>
</table>
 ...
</html>

如果不需要,解析HTML就没有意义。

如果您懒得使用搜索功能,我懒得找到重复的HTML,但请确保它就在那里:我不懒得使用搜索功能,我只是没有找到任何以前的问题和答案来满足我的需要。:)链接搜索结果中的第二个链接和Wrikken的答案应该会提供您所需的一切。可能的重复是对问题的有趣解释。通常提问者知道他们想要什么,不幸的是,在HTML在PHP中作为字符串提供给我之前,我无法以任何方式影响它。回想起来,我现在意识到我原来的问题缺乏背景,因此对此表示歉意。:)很遗憾,我需要在服务器端执行此操作,但谢谢您的建议。:)解析XML服务器端是PHP的XML函数的用途。。。我甚至没有意识到这是可能的。。对不起,我以为你误解了我的问题。我一定要找一本关于PHP原生DOM操作的入门书。谢谢。:)好吧,我找到了一个解决方案,同时部分使用了您使用的技术;我建议这么做,非常感谢。因为我有一个很大的HTML字符串作为PHP变量,所以使用您建议的DOM方法更容易找到有问题的表,用占位符节点替换它,然后用字符串内容替换占位符节点。:)再次感谢!
<?php
    $tableString = calcTableContents();
    require('includedHTML.inc');
?>