重複の可能性:
PHP で HTML を解析および処理する方法は?
この質問の言い方がわかりませんでした。
基本的に、私はこのphpコードを持っています:
$new_html = preg_replace('!<div.*?id="spotlight".*?>.*?</div>!is', '', $html);
これでhtmlコードを次のように変更したい(例、実際のhtmlではない):
<div id="container">
<div id="spotlight">
<!-- empty -->
</div>
<div id="content">
<!-- lots of content -->
</div>
</div>
これに:
<div id="container">
<div id="content">
<!-- lots of content -->
</div>
</div>
ご覧のとおり、正規表現は次のものを探しているため、php コードはこれを正常に実行します。
<div{anything}id="spotlight"{anything}>{anything}</div>
でも
div id="spotlight" に次のような子 div が含まれている場合:
<div id="container">
<div id="spotlight">
<div></div>
</div>
<div id="content">
<!-- lots of content -->
</div>
</div>
正規表現は、子 div の終了 div タグと一致します!
どうすればこれを防ぐことができますか? 別のdivが開かれている場合、閉じるdivを無視するように正規表現に指示するにはどうすればよいですか?
ありがとう