Anschinsan: Regular Expression fehlerhaft

Beitrag lesen

Bitte erlöst mich von meinem Elend!

Ich möchte per 'preg_replace' alle Styleangaben aus einem html Text entfernen. Mein erfolgreichster Suchpattern dazu sieht so aus:

$suche[2] = '@style='(.*)'@i';

Das entfernt alle Styleangaben die nur eine Zeile benötigen - aber wenn ein Zeilenumbruch drin ist schaut's schlecht aus (html kommt von Word).

Im Laufe des stundenlangen Debuggens und fleissiger Weiterbildung habe ich alle möglichen Varianten ausprobiert:
im,is und ims hinter dem zweiten Delimiter @
$ vor dem letzten '
Eckige und runde Klammern an jeder Position
\r\n  schon vorher ersetzen bzw. in das Patten einbauen
...

Als Ergebnis bleiben die Styleangaben entweder im Quelltext oder die preg_replace Funktion ersetzt auch über das abschließende ' hinaus weiter.

Hiermal ein Beispieltext, in dem ersetzt werden soll:

<p class=MsoNormal align=center style='text-align:center;background:white'><b><span
lang=TR style='font-size:12.0pt;font-family:Verdana;color:black;letter-spacing:
.65pt;mso-ansi-language:TR'>TOBİT' İN KİTABI<br
style='mso-special-character:line-break'>
<![if !supportLineBreakNewLine]><br style='mso-special-character:line-break'>
<![endif]></span></b><span lang=TR style='mso-ansi-language:TR'><o:p></o:p></span></p>

Bitte, bitte - kann mir jemand mit dem Suchpattern helfen bevor der Feiertag endgültig vorbei ist?

Anschinsan