preg_replace, so will es die Theorie, ist standardmäßig "global".
Nun... ich versuche mich gerade an einem Skript, das in einem WordPress-System (das "..." automatisch durch &8220;...&8221; ersetzt)
anständige deutsche Anführungszeichen einfügen soll, ohne die HTML-Tags zu zerschießen.
Das klappt so weit:
PHP-Code:
$originaltext = "<em>Frei wie in &8220;freie Rede&8221;, nicht wie in &8220;Freibier&8221;.</em>";
$regex = '~(?<!=)&\#8220;(?!>)([^"\r\n]+)&\#8221;(?!>)~x';
$content = preg_replace($regex, '„$1”', $originaltext);
Tja. Das erste Ergebnis ersetzt er - das zweite nicht. Und das in JEDEM Beispieltext, den ich finden konnte.
Zitat:
Frei wie in „freie Rede”, nicht wie in “Freibier”.
|
Ideen?