PHP HTMLコードから特定のclassを持つタグと中身を消したい
HTMLパースについての質問です
正規表現 PHPで特定のタグをけしたい
前回の質問の結果から、パースについて調べて、少し理解しました
ソース前提
$html = file_get_contents($target);/読み込む
$doc = new DOMDocument();
$doc->formatOutput = true;
$doc->preserveWhiteSpace = false;
$doc->documentEncoding = 'UTF-8';
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
例1)
foreach ($xpath->query('//div[@class="hoge"]') as $node) {
print_r($node);
}
上記で class 名が hoge の div の中身を取り出せることはわかりました。
文字列) <div class="hoge">txtxtxtxt</div>
取り出す内容)txtxtxtxt
また、次のように書くと すべてのdiv タグの中身を削除できることもわかります
例2)
$scripts = iterator_to_array($doc->getElementsByTagName('div'));//タグの検索
foreach ($scripts as $s) {
$s->parentNode->removeChild($s);
}
今回質問したいのは、「特定のクラス名を持ったタグ」の中身を
タグも含めて削除したい場合にはどうしたら良いのでしょうか?
例1)のように タグ内のクラスを指定して検索し、
更に検索に一致したクラスの中身を消したいです。
<div class="hoge">~~~~~~~</div>
の中身をすべて消したいです