0

次の間のすべてのhtmlを取得したい:

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

preg_match_all('XXXXXXXXXX', $this->markup, $links);
4

3 に答える 3

7

一般に、正規表現の代わりに DomDocument を使用することもお勧めします。ただし、この場合、DomDocument には余分な手間が必要です。これは、OP が nodeValue だけでなく HTML コードを必要とするためです。(とにかく、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>"
于 2013-07-05T11:12:35.703 に答える
0

この操作にはphpQueryを使用します。PhpQuery には jQuery のような構文があり、単純に理解するためのものです

于 2013-07-05T11:05:11.797 に答える
0

これを正規表現で解析する代わりに、DomDocumentのようなものを使用する必要があります。

于 2013-07-05T10:57:19.020 に答える