Hallo!
Ich möchte in einem Quelltext <font color=#ff0000>...</font> durch <span style="color:#ff0000">...</span> ersetzen.
$quelltext = preg_replace("/<font\s+color=(#[a-z0-9]+)>(.*)</font>/i", "<span style="color:$1">$2</span>", $quelltext);
Das funktioniert auch fast, weil Leider der Quelltext folgendermaßen abgeändert wird, was nicht gaz richtig ist.
<span color="#ff0000">Hier kommt die Maus</font> <font size=2>und der Nicholaus</span>
Klar, durch "(.*)" wird alles bis zum letzten </font> gefunden.
Mit folgendem Konstrukt funktioniert es:
$string = preg_replace('/<font\s+color=(#[a-z0-9]+)>([\w\s.:,;"'/?+&§()-]+)</font>/i', '<span style="color:$1">$2</span>', $string);
<span color="#ff0000">Hier kommt die Maus</span> <font size=2>und der Nicholaus</font>
Ich habe versucht alle möglichen Zeichen die vorkommen könnten aufzunehmen, sicherlich habe ich welche vergessen, was das Problem sein könnte.
Mir fällt leider nicht ein, wie ich das erste Beispiel so ändern kann, daß es richtig funktioniert.
MfG, André Laugks
L-Andre @ gmx.de