0

HTML があり、preg_replace を使用して特定の div タグを削除したいと考えています。

コード:

<div class="time-trainer"> sjdgj</div>

コンテンツを持つ div を削除して、コンテンツも削除したいと考えてclass="time-trainer"います。

preg_replace は html からイメージ タグを削除するために正常に動作していますが、div で同じことを行う方法

$rmvimgfromdata = preg_replace("/<img[^>]+\>/i", "",  $data); 

上記のコードは、html から画像タグを削除するために正常に動作しています。

ありがとう

4

2 に答える 2

1

これを試して

$html   = '<div class="time-trainer">Remove</div>';

// Show
echo $html;

// Remove
echo preg_replace('~<div([^>]*)(class\\s*=\\s*["\']time-trainer["\'])([^>]*)>(.*?)</div>~i', '', $html);

アップデート

DOM を使用する

$html   = '<div class="time-trainer">
                <p class="fifths">asdasdas</p>
                <p class="hundredths">asdasdas</p>
                <p class="winner-info">asdasdas</p>
            </div>';


$dom = new DOMDocument;
$dom->loadHTML( $html );

$xpath = new DOMXPath( $dom );
$pDivs = $xpath->query(".//div[@class='time-trainer']");

foreach ( $pDivs as $div ) {
  $div->parentNode->removeChild( $div );
}

echo preg_replace( "/.*<body>(.*)<\/body>.*/s", "$1", $dom->saveHTML() );
于 2012-06-28T08:11:36.707 に答える