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

发布于 2024-09-11 17:50:47 字数 224 浏览 5 评论 0原文

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

更新:有问题的 HTML 可以作为字符串提供给我,我无法插入任何额外的数据或以任何方式更改 HTML...我需要能够在开始时搜索打开和关闭模式和 HTML 中表格的末尾,然后替换中间的内容。 :)

I have a HTML document with the a table which I want to replace, however I don't know what the content of the table will be so I need to search for the opening and closing table tags and then replace the content between them. I'm a bit of a n00b with regular expressions so I'm having trouble working out how to do this... any ideas?

Update: The HTML in question is available to me as a string and I'm not able to insert any extra data or change the HTML in any way... I need to be able to search for a opening and closing pattern at the start and end of the table in the HTML and then replace the contents in-between. :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

情感失落者 2024-09-18 17:50:47

不要为此使用正则表达式,请查看解析器。例如,在 DOMDocument 实例中加载 HTML,使用 DOMXPathgetElementsByTagName 搜索表,然后使用 replaceNode code> 或其他操作函数。使用正则表达式执行此操作通常非常不可靠。

Do NOT use regular expressons for this, look into parsers. For instance, load the HTML in a DOMDocument instance, search the table with either DOMXPath or getElementsByTagName, and use the replaceNode or other manipulation functions. Doing it with regexes is usually very unreliable.

蓝咒 2024-09-18 17:50:47

HTML 文档是您自己的,还是从其他网站通过 file_get_contents() 编辑的?如果是第一种,只需将 HTML 更改为

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

并为其指定 .php.inc 扩展名。然后,在您的主文件中:

<?php
    $tableString = calcTableContents();
    require('includedHTML.inc');
?>

如果不需要,则无需解析 HTML。

Is the HTML document your own, or file_get_contents()ed from a another site? If the first, just change the HTML to

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

and give it a .php or .inc extension. Then, in your main file:

<?php
    $tableString = calcTableContents();
    require('includedHTML.inc');
?>

No point parsing HTML if you don't have to.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文