首页 > 解决方案 > php正则表达式获取div内容

问题描述

为什么我的代码不起作用

我的PHP代码

preg_match('@<div id="table-1"(.*?)></div>@si', $data, $table);

我想要获取内容的div

<div id="table-1" aria-labelledby="id-1" class="tabs-panel widget-content" role="tabpanel" aria-hidden="true" style="display: none;">
<!-- content -->
</div>

标签: phpregex

解决方案


我还认为使用 DOMDocument 是一个更好的主意,除非您拥有的 html 代码没有经过验证。

在这种情况下,如果您仍想使用表达式来获取内容,可以这样做:

preg_match('@<div id="table-1".*?>([^<]*)</div>@si', $data, $matches);

内容将在$matches[1].

你可以在这里看到它工作http://sandbox.onlinephpfunctions.com/code/95f612d313e699add224efca4527417338c7b739


推荐阅读