Henryk Plötz: Zeichenfolgen \" ersetzen klappt nicht...

Beitrag lesen

Moin,

ereg_replace(""","'",$text);

Leider klappt dies nicht wie gewünscht. Nur das " Zeichen wird ersetzt, der Backslash jedoch nicht. Kann mir jemand den Grund für dieses komische Verhalten verraten und wie ich das lösen soll?

Der Backslash ist ein besonderes Zeichen, da er das nachfolgende Zeichen escaped. Normalerweise kannst du " innerhalb von " " doch gar nicht verwenden, da die Anführungszeichen sonst als beendet angesehen würden, wenn du einen Backslash davor stellst, wird aber das " von seiner Sonderbedeutung enthoben. Im Zusammenhang mit vielen anderen Zeichen (n ist das prominenteste Beispiel) verleiht der Backslash sogar eine Sonderbedeutung.
Die Abhilfe ist logisch: Du musst den Backslash vor seiner Sonderbedeutung schützen - mit einem Backslash.
ereg_replace("\"","'",$text) macht was du willst. (Das \ wird durch \ ohne Sonderbedeutung ersetzt, und das " durch " ohne Sonderbedeutung.)

--
Henryk Plötz
Grüße von der Ostsee

* Help Microsoft combat software piracy: Give Linux to a friend today! *