Escape di unsa stringa per un database postato il 15/08/2010 03:25:12 nel forum programmazione, gdrcd e open source e modificato da valenor il 15/08/2010 03:31:28
Sto creando una funzione di escape di una stringa in modo che sia sicura per un eventuale inserimento in un DB tramite query.
PS: Considerate gli slash della sezione del preg_replace come dei backslash.
Pagine → 1
15/08/2010 12:27:53 e modificato da vino_veritas il 15/08/2010 12:32:00
Perchč prima di passare al motore delle espressioni regolari, i pattern vengono interpretati dall'engine php stesso; in pratica, tu vuoi fare l'escape di un backslash, quindi a rigor di logica dovresti scrivere solo 2 backslash.
Ma siccome il motore php interpreta per primo le stringhe, esso toglierebbe un backslash interpretando "correttamente" il fatto che il carattere successivo al backslash debba essere interpretato dalla stringa "cosě com'č" (in pratica, supponendo che tu abbia passato la stringa composta da \\n, verrebbe passato al motore delle regexp il carattere di new line).
Se invece ne metti 4, di backslash, il motore php ne toglie automaticamente 2, il primo e il terzo, facendo cosě arrivare al motore delle espressioni regolari l'esatta sequenza di 2 backslash, che verrŕ interpretata come "occorrenza di un singolo backslash" (riprendendo l'esempio di prima, se fai passare \\\\n ciň che arriva al motore delle regexp č la stringa \\n, vale a dire, la sequenza backslash-n, non il carattere di new line).
Discussione seguita da
Pagine → 1
Rispondi alla Discussione Aggiungi ai Preferiti Inoltra Discussione Forum Programmazione, GDRCD e Open Source Elenco Forum