まず、Simple HTML DomパーサーとPHPの組み込みソリューションについて知っていますが、これらのいずれも、私が求めている種類の仕事を正確に実行していません(私の知る限りではありません)。
DOM内の要素とそれに属するコンテンツを見つけて削除し、マークアップに余分な空白が含まれている場合は許すPHPのPCREを探しています。
コードは次のとおりです。
<div id="maindiv">
<div class="unusefuldiv1">Unuseful content</div>
<div id="unusefuldiv2">Unuseful content2</div>
<!-- ... some content I'm after for -->
</div>
.uunusefuldiv1と#unusefuldiv2(コンテンツと一緒にマークアップ)の両方を削除し、(可能であれば)たとえば<div class="unusefuldiv1">
、余分な空のスペースでわずかにタイプミスした場合に仕事をするのに十分な柔軟性を備えた正規表現パターンに必死です<div class="unusefuldiv1" >
。
それは似たようなものかもしれません
preg_replace('/<div\b[^>]*>(.*?)<\/div>/is', '', $dom_content);
ただし、このパターンでは、一部のクラス、IDの有無にかかわらず、すべてのdivが削除されます。
誰かが解決策を持っていますか?