Web ページのコードは次のとおりです:
<span class="1"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></span><div class="2"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></div><div class="3"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></div><span class="4"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></span>...
HTML または XML、特にネストされたタグを含む HTML には特別な dom API があり、それらを取得するために正規表現、特に正規表現の再帰を伴う PHP 正規表現を使用しないようにしてください。式。PHP が他の言語と同様に通常のバランシング グループを持つことができる場合でも、それを使用しないことをお勧めします。
<(span|div)s+class="d">s+
お二人ともご回答ありがとうございました!
$s =<<< TXT<span class="1"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></span><div class="2"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></div><div class="3"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></div><span class="4"> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div></span>TXT;
include 'phpquery.php';$doc = phpQuery::newDocument($s);echo $doc->find('.1')->html();echo pq('.2')->html();
<h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div>
include 'html_document.php';$p = new html_document( $s, 0);foreach($p->find('.\d') as $v) { echo "$v->innerHTML\n";}
<h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div> <h3 class="title">testtesttesttesttesttestt</h3> <div class="con"> <span>testtesttest</span><p>testtesttesttesttesttesttesttesttest</p> </div>
モデレーターのおかげで、できるだけ早く投稿しました