【发布时间】:2017-04-10 13:56:01
【问题描述】:
我正在获取一个带有file_get_contents() 的 HTML 网页,我得到一个如下表,有超过 150 行:
<tr class="tabrow ">
<td class="tabcol tdmin_2l">FIRST+DATA</td>
<td class="tabcol">
<a class="modal-button" title="SECOND+DATA" href="THIRD+DATA" rel="{handler: 'iframe', size: {x: 800, y: 640}, overlayOpacity: 0.9, classWindow: 'phocamaps-plugin-window', classOverlay: 'phocamaps-plugin-overlay'}">
asdxxx
</a>
</td>
<td class="tabcol"></td>
<td class="tabcol">FOURTH+DATA</td>
</tr>
我想通过preg_match_all() 呼叫获得FIRST DATA、SECOND DATA、THIRD DATA 和FOURTH DATA。我尝试编写多个模式,但我无法成功。这是我尝试过的:
preg_match_all('/(<td class="tabcol tdmin_2l">|title=")(.*?)(<\/td>|")/s', $raw, $matches, PREG_SET_ORDER);
真正的模式是什么?
【问题讨论】:
-
不要使用正则表达式解析 HTML。
-
改用 DOM 解析器。用正则表达式解析 HTML 标记是非常不可靠的。对标记进行一些小的更改时,它会中断。
标签: php regex html-parsing preg-match