have the following text:
<html>
<HEAD>
<style type="text/css">
.zwischenueberschrift_3, .zwischenueberschrift{
color:red;
font-weight: bold;
}
</style>
</HEAD>
<body>
<inhalt bez="text" sprache="DE">
<objekt type="xhtml">
<div class="text">Amet totam deleniti voluptate corporis wisi, donec alias, aspernatur enim leo, sunt, cursus sollicitudin pellentesque tortor rutrum rerum, magna tenetur aliquid ducimus
incidunt sociosqu, mollitia dicta totam gravida dignissi.</div>
<div class="zwischenueberschrift_3">Nostra lobortis magni, eum dapibus nemo culpa augue ligula class! Magna ullamcorper! Reiciendis porttitor cum vitae. Beatae primis dictum adipisicing
deserunt duis posuere magna <br />
</div>
<div class="text">rovident viverra? Parturient egestas, condimentum! Mollitia anim? Ullam! Saepe dis, sem? Arcu esse class optio atque! Minima incidunt voluptatem porta eaque animi! Nibh dis,
tincidunt aliquet? Perferendis massa eiusmod eius? Aut, nobis! Explicabo penatib:<br />
<ul>
<li>reiciendis, laboris facilis bibendum, .<br />
<br />
</li>
<li>porro, facilis felis? Ridiculus dicta! Integer luctus laoreet rhoncus, habita max. 50 % corrupti, 3.000 kg habitant corrupti, . <br />
<br />
</li>
<li>tur quidem, eos consequat:<br />- Bis 23.09.2016 für Oktober, November, Dezember<br />- Bis 14.10.2016 für November, Dezember, Januar<br />- Bis 11.11.2016 für Dezember, Januar,
Februar<br />- Bis 09.12.2016 für Januar, Februar, März</li>
<br />
<li>ed imperdiet et phasellus adipiscing! Bibendum. Ad. Maiores pellentesque! Mauri.<br />
<br />
</li>
<li> Habitant dolore! Vestibulum! Conubia quaerat. Minima, nihil penatibus magna adipisci! Ultricies dignissim hic imperdiet. Tempus, distinctio.<br />
<br />
</li>
<li>e, quae beatae inceptos labore sunt excepturi id, neque saepe quae tellus. N bei 50 bis 80 % das 0,8-fache (11,2 Cent/kg), bei 20 bis 50% das 0,5-fache (7 Cent/kg) und bei
weniger als 20% tus dapibus occa.<br />
<br />
</li>
<li>la, platea. Reprehenderit <br />
<br />
</li>
<li>celerisque convallis occaecat im Jahr 2017. <br />
<br />
</li>
<li>Ddolore id? Ea sint? Netus quasi vulputate bis zum 23.09.2016 nutzen.</li>
</ul>
</div>
<div class="zwischenueberschrift">litora magni assumenda! Magnis </div>
<div class="text">llentesque consectetuer voluptatum purus ratione, temporibus deleniti eveniet ullamco eget nostrud? Sodales fusce. Nostrum culpa saepe quis penatibus accusantium? Sagittis
porttitor minima nunc ab fermentum incidunt class urna, tempor, ullamcorper quod beatae? Nostra cubilia felis? Mus pretium fames etiam, cras, velit nec quae, voluptates quas voluptas dis
inceptos porro dolorem ligula.t.<br /> <br />entium! Consectetuer tenetur, auctor wisi? Voluptatibus reiciendis unde convallis justo incidunt? Itaque leo? Mollit odio ultricies asperiores
ullamco parturient sociosqu reiciendis incidunt consequat. Ut est? Impedit pellentesque fringilla eligendi? Mi ear </div>
<div class="zwischenueberschrift_3">tpat eros, maiores totam cupi<br />
</div>
<div class="text">Excepteur saepe occaecati elit. Ex mauris do porttitor? Convallis molestie, consectetuer culpa. Voluptatum dolor ipsum adipiscing, quia, laudantium mi totam. Beatae quae.
Praesent excepturi, nemo fringilla similique quisquam sapiente totam fermentum fuga arcu . </div>
</objekt>
</inhalt>
…
</body>
</html>
In the text all div elements with the class zwischenueberschrift or zwischenueberschrift_3 should be replaced by span.
The css class is only to show the class element.
I have built a regular expression that finds these elements for me, but unfortunately I can't replace them :-(
Here the expression:
<div\sclass\=\"zwischenueberschrift(\_\d|)\"\>[a-zA-Z0-9ÄÖÜäöüß\s\-\<\/\>\.\!\,\r\n\t]+\<\/div\>
What I built to replace the div element either works insufficiently or not at all :-(
$preg ='/<div\sclass\=\"zwischenueberschrift(\_\d|)\"\>[a-zA-Z0-9ÄÖÜäöüß\s\-\<\/\>\.\!\,\r\n\t]+\<\/div\>/';
if( preg_match($preg, $text )){
$a2 = preg_match_all($preg, $text , $a1 );
if( is_integer($a2) && intval( $a2) > 0 )
{
$sammeln = '';
$arr_text_zum_ersetzten = array();
$arr_preg = array();
foreach( $a1[0] as $key => $value )
{
#echo "$key, ".strlen($value)."<br>";
$text_zum_ersetzten='';
$text_zum_ersetzten = str_replace("div", "span", $value);
$text_zum_ersetzten = str_replace("zwischenueberschrift_3", "zwischenueberschrift", $text_zum_ersetzten);
$text_zum_ersetzten = str_replace("<br />", "", $text_zum_ersetzten);
$arr_text_zum_ersetzten[] = $text_zum_ersetzten;
$value = str_replace("<", "\<", $value);
$value = str_replace(">", "\>", $value);
$value = str_replace("_", "\_", $value);
$value = str_replace("/", "\/", $value);
$value = str_replace('"', '\"', $value);
$value = str_replace("=", "\=", $value);
$value = str_replace("-", "\-", $value);
$arr_preg[] = "/".$value."/";
$sammeln.=$value."\n";
$sammeln.=$text_zum_ersetzten."\n\n";
}
preg_replace( $arr_preg, $arr_text_zum_ersetzten, $text);
# Loging to testing, start
$sammeln.="++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n";
$text.="++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n";
error_log($sammeln, 3, "sammeln_22.log");
error_log($text, 3, "text11.log");
# Loging to testing, ende
}
}
Has anyone given an idea of how to make this more reliable, if only by the means of regular expressions?
greetings webuser