Dziękuję za pomoc! wszystko działa tak, jak chciałem :)
bo RegExp patern jest "ustawiony" dla div-a, bez kolejnych div-ów w "środku"
$pattern = '/<div\s+data-id="' . preg_quote($id, '/') . '">.*?<\/div>/si'
ale taki zapis już daje radę z zagnieżdżonym kodem html we wnętrzu tym razem np. <section>
[ on-line ]
function removeById($id) {
$fileContent = file_get_contents('wpisy.dat');
$pattern = '/<section\s+id="' . preg_quote($id, '/') . '">.*?<\/section>/si';
$fileContent = preg_replace($pattern, null, $fileContent); // usuwa <section>...</section>
$fileContent = preg_replace('/^\h*\v+/m', '', $fileContent); // usuwa puste linie po kasowaniu <section>
file_put_contents('wpisy.dat', $fileContent);
}
dla np
<section id="99374e01">
<div class="post">
<div class="logo"></div>
<div class="id">User: 99374e01</div>
<div class="time">00:17</div>
<div class="data">poniedziałek, 24 lipca 2023r</div>
<div class="text">aaa</div>
</div>
</section>
<section id="00374ea1">
<div class="post">
<div class="logo"></div>
<div class="id">User: 00374ea1</div>
<div class="time">00:17</div>
<div class="data">poniedziałek, 24 lipca 2023r</div>
<div class="text">aaa</div>
</div>
</section>
<section id="00454eff">
<div class="post">
<div class="logo"></div>
<div class="id">User: 00454eff</div>
<div class="time">00:17</div>
<div class="data">poniedziałek, 24 lipca 2023r</div>
<div class="text">aaa</div>
</div>
</section>
<section id="ab454eff">
<div class="post">
<div class="logo"></div>
<div class="id">User: ab454eff</div>
<div class="time">00:17</div>
<div class="data">poniedziałek, 24 lipca 2023r</div>
<div class="text">aaa</div>
</div>
</section>