php - 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>
解决方案
我还认为使用 DOMDocument 是一个更好的主意,除非您拥有的 html 代码没有经过验证。
在这种情况下,如果您仍想使用表达式来获取内容,可以这样做:
preg_match('@<div id="table-1".*?>([^<]*)</div>@si', $data, $matches);
内容将在$matches[1]
.
你可以在这里看到它工作http://sandbox.onlinephpfunctions.com/code/95f612d313e699add224efca4527417338c7b739
推荐阅读
- javascript - 未找到 Nuxt 导出“默认”(导入为“mod”)
- javascript - 使用 Jinja2 将 Pandas 转换为 DataTable
- python - 结合 Python 的 while 和 for 循环
- python - Keras 不能添加一个数字数组,产生一个标量吗?
- python - Mac OS 上的 Pynput。找不到满足要求 pynput 的版本
- javascript - 将不同的数据推送到多个对象会导致将相同的数据推送到所有对象
- python - 如何在 Visual Studio Code 中导入我自己的 Python 文件?
- java - 无法使用 Log4j 捕获调试模式
- jquery - 使用控制台开发工具在 Chrome 中自动加载 URL
- php - PHP Laravel 代码返回错误 500,日志中没有警告或错误