2011-12-26 17 views
5

Come ho capito, stripslash non dovrebbe rimuovere la barra dal carattere di nuova riga "\ n". E tutto funziona bene, a parte la situazione, quando ho un carattere di nuova riga in una variabile.Stripslash e newline in variabile in PHP

$string = '\n\"'; 
echo stripslashes($string); // n" 

ma ho bisogno nell'output prossimo: \n".

Grazie in anticipo.

+0

virgolette singole significano stringa letterale come dove i contenuti all'interno di doppi apici ottiene analizzati (che è ciò che tu vuoi). – PeeHaa

risposta

5

Penso che si stia mescolando virgolette doppie e semplici

$bad = '\n\"'; 
$good = "\n\""; 

Utilizzando apostrofo non c'è scappamento (appart \ ') anche in virgolette singole PHP non sostituirà le variabili PHP.

D'altra parte i permessi di citazione doppio utilizzando sequenza sfuggito come \n, \t ecc ...

È possibile rivedere la documentation e controllare le differenze.

Quindi volevi dire scrivere

$string = "\n\""; 
echo stripslashes($string); // \n" 
1

All'interno di virgolette singole, \n non si traduce in una nuova riga. Utilizzare le virgolette doppie invece:

$string = "\n\""; 

Per una migliore comprensione, il codice corrente è equivalente a:

$unwanted_string = "\\n\\\""; // Will be printed as: \n\" 
0

Credo che usando le virgolette al posto risolverà il vostro problema

$string = "\n\""; 
+0

WHY mi è stato dato -ve :(:(?? –

+1

+1 per riportarlo a zero. Immagino che tu sia stato downvotato, perché la tua risposta è quasi identica alla mia, ma pubblicata 8 minuti dopo. –