【发布时间】:2018-03-03 20:36:41
【问题描述】:
在变量$url 中,包含网站的内容
下面的div里面有页面的所有主要内容
<div id="mw-content-text" lang="pt" dir="ltr" class="mw-content-ltr">
我想查找具有“História”的<H2>
<h2><span id="Hist.C3.B3ria"></span><span class="mw-headline" id="História">História</span><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Adamantina&veaction=edit&section=1" class="mw-editsection-visualeditor" title="Editar secção: História">editar</a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Adamantina&action=edit&section=1" title="Editar secção: História">editar código-fonte</a><span class="mw-editsection-bracket">]</span></span></h2>
在结束</h2>的开始<h2>标签之间有很多代码,可以在上面看到
但我只需要在包含“História”的</h2>标签之后获取前两段<p>
preg_match_all('/<h2>(.+)</h2>/s', $url, $content);
如何输入必须具有“História”的正则表达式,以及如何仅过滤</h2> 标记后的前两段?
【问题讨论】:
-
这称为解析。不要使用正则表达式来解析 HTML 文档。请改用 DOM 解析器。
-
搜索:
DOMDocument -
非常感谢您指出我正在阅读 PHP 手册 (The DOMDocument class)。我找到了getelementsbytagname。但是如何将变量转换为
XML? -
我今天回答了这个问题:stackoverflow.com/a/49081418/6099347
标签: php regex preg-match-all