ただのアイデア...
PHPXPathクエリについて考えたことはありますか?
// CSS は重要ではありません
<style>
div { border:1px solid rgba(255,0,0,0.5); background:rgba(255,0,0,0.1) }
span{ border:1px solid rgba(0,255,0,0.5); margin:0px 2px; padding:0 20px;
background:rgba(0,255,0,0.5)}
</style>
// HTML、この例では文字列をPHPします。
<?php
$string = '
<div>
<span id="keep"> John </span>
<span id="keep"> Susane </span>
<span id="todelete"> Tree </span>
<span id="keep"> Karin </span>
<span id="keep"> Jack </span>
</div>
';
echo $string;
// PHP は新しいクラスDOMDocumentを開始し、クエリを実行します
$doc = new DOMDocument;
@$doc->loadHTML($string);
$xpath = new DOMXPath($doc);
$found = $xpath->query("//span[contains(@id, 'todelete')]");
//より多くのPHP これをうまく説明することはできません。他の誰かができることを願っていますか?
//しかし、クエリは'todelete'の属性IDを含むスパンを見つけました
//HTMLとして出力すると思います
$element = $found[0]->ownerDocument->saveXML($found[0]);
/* ##### <span id="todelete"> Tree </span> ##### */
echo '<p>delete:' . $element . '<p>';
//最後にPHP 文字列で見つけたものを何も置き換えない
echo str_replace($element, '' , $string);
?>
お役に立てば幸いです。XPathは非常に強力で、忘れられがちです。試してみる。私はそれがあなたのニーズに十分であることを願っています。上記のすべてのコードをコピーして、.phpドキュメントに貼り付けることができます。