16.13. Wieso wird aus " plötzlich \" und wie geht das wieder weg?Antwort von Johannes FrömterDas sind Escapes, die vor bestimmten Sonderzeichen stehen, um diese zu "entschärfen". Verantwortlich für dieses Verhalten ist die Funktion magic_quotes von PHP, die üblicherweise in der php.ini eingestellt wird. Dabei gilt magic_quotes_gpc für Daten, die per GET, POST oder COOKIE übergeben werden und magic_quotes_runtime für Daten, die aus Datenbanken, Dateien oder anderen externen Quellen kommen. Escaped werden ' (single quote), " (double quote), \ (backslash) und NUL (das Null-Byte). Um die Escape-Zeichen wieder zu entfernen, benutzt man stripslashes() ; manuell hinzufügen kann man sie mittels addslashes() . Die Konfiguration von magic_quotes kann man an verschiedenen Stellen beeinflussen: php.ini: magic_quotes_runtime = on|off magic_quotes_gpc = on|off .htaccess, httpd.conf: php_flag magic_quotes_runtime on|off php_flag magic_quotes_gpc on|off .php ini_set("magic_quotes_runtime", 0|1); // magic_quotes_gpc geht hier nicht In Verbindung mit Sybase-Datenbanken (d.h. bei zusätzlich gesetzter Option magic_quotes_sybase ) gibt es eine Besonderheit: Hier werden single quotes nicht mit einem Backslash, sondern mit einem weiteren single quote escaped. |
||
16.13. Wieso wird aus " plötzlich \" und wie geht das wieder weg? http://www.php-faq.de/q/q-magic-quotes.html |
||
Archiv der de.comp.lang.php-FAQ Dies ist eine Archivseite von 2008 und wurde seitdem nicht geändert. Das dclp-FAQ-Team |