Preg_match_all - 获取<table> </ table>之间的所有html代码(数据)

shu*_*wal 0 php html-table web-scraping

我想抓住之间的所有html:

<table cellpadding="0" cellspacing="0" border="0" class="list" width="100%">
.
.
.
.
</tbody>

preg_match_all('XXXXXXXXXX', $this->markup, $links);
Run Code Online (Sandbox Code Playgroud)

eye*_*hUp 6

一般来说,我建议使用DomDocument而不是正则表达式.但是在这种情况下,DomDocument需要一些额外的麻烦,因为OP需要HTML代码,而不仅仅是nodeValue(s).(反正,对于基于的DomDocument的方法,你可以使用一些"变通"像这样(得到表的内容含HTML))

话虽这么说,这是你要求的正则表达式:

$html = '<table cellpadding="0" cellspacing="0" border="0" class="list" width="100%">' .
        '<tr><td>Lorem</td><td>Ipsum</td></tr>' . 
        '</table>';

preg_match_all('/<table.*?>(.*?)<\/table>/si', $html, $matches); 

var_dump($matches[1][0]); // string(37) "<tr><td>Lorem</td><td>Ipsum</td></tr>"
Run Code Online (Sandbox Code Playgroud)