Hallo,
vermutlich ein ganz primitiver Fehler, aber ich komme nicht darauf.
Da ein ins Formular eingegebenes ' bzw " in der Ausgabe als ' bzw. " erscheint, wollte ich das \ entfernen.
dann solltest du dieses Übel an der Wurzel bekämpfen, anstatt an den Symptomen.
Das Statement
$v = preg_replace('/\\/', '', $v);
bringt den Fehler:
Warning: preg_replace() [function.preg-replace]: No ending delimiter '/' found in ....
Woran liegt dies?
Am nicht beachteten doppelten Escaping. Für die korrekte Notation in einem PHP-String hast du den Backslash korrekt maskiert/escapet, indem du ihn verdoppelt hast. Was die RegEx-Engine bekommt, lautet nun aber: '//'
Damit wird der abschließende Slash, der eigentlich Delimiter sein möchte, maskiert.
Was tun wir also, um zu erreichen, dass die RegEx-Engine zwei Backslashes bekommt? - Genau, zweimal je einen maskierten Backslash im PHP-Code notieren: '/\\\\/'
Aber eigentlich solltest du dafür sorgen, dass das PHP-Feature "magic quotes" deaktiviert wird. Entweder stellt dein Webhoster ein Verwaltungs-Tool zur Verfügung, wo du solche Einstellungen vornehmen kannst, oder du musst eine eigene php.ini verwenden. Im Script selbst über ini_set()
geht's nicht, weil es zu dem Zeitpunkt, wo das Script ausgeführt ist, schon zu spät ist - da ist schon alles passiert.
Ciao,
Martin
Chef: Zum vierten Mal in dieser Woche erwische ich Sie nun schon beim Zuspätkommen. Was haben Sie dazu zu sagen?
Angestellter: Dann muss heute Donnerstag sein.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(