Einzelnen Beitrag anzeigen
  #1  
Alt 09.10.2013, 00:45:27
Tuxman Tuxman ist offline
Anfänger
 
Registriert seit: Dec 2006
Beiträge: 83
preg-Regex ist nicht "global"?!

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?
__________________
tuxproject.de
Mit Zitat antworten