2011-12-26 8 views
5

Según tengo entendido, las barras de trazo no deberían eliminar la barra del carácter de nueva línea "\ n". Y todo funciona bien, excepto situaciones, cuando tengo un carácter de nueva línea en una variable.Stripslashes y nueva línea en variable en PHP

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

pero necesito en la siguiente salida: \n".

Gracias de antemano.

+0

Las comillas simples significan cadena literal como en el contenido dentro de comillas dobles consigue analizados (que es lo usted quiere). – PeeHaa

Respuesta

5

Creo que se está mezclando comillas dobles y simples

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

Usando comilla simple no hay escape (appart \ ') también en comillas simples PHP no reemplazará las variables de PHP.

Por otro lado los permisos dobles comillas utilizando la secuencia escapado como \n, \t etc ...

puede revisar los documentation y comprobar las diferencias.

Por lo que significaba escribir

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

Dentro de comillas simples, \n no se traduce en una nueva línea. Utilizar comillas dobles en su lugar:

$string = "\n\""; 

Para una mejor comprensión, su código actual es equivalente a:

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

Creo que el uso de comillas dobles en lugar va a resolver su problema

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

¿Por qué me han dado -ve :(:(? –

+1

+1 para volver a cero. Supongo que se ha votado negativamente, porque su respuesta es casi idéntica a la mía, pero se publicó 8 minutos después. –