2011-05-28 25 views
7

PHP - Tengo una cadena que tiene valores diferentes en cada línea:¿Cómo explotar una cadena de varias líneas?

$matches="value1 
value2 
value3 
value4 
value5 
"; 

Quiero explotar toda la cadena entre en una matriz que consiste en los valores separeted. Sé cómo explotar una cadena separada por espacios, como explode(' ', $matches). Pero, ¿cómo uso la función de explosión en este tipo de cadena?

yo probamos este:

$matches=explode('\n',$matches); 
print_r($matches); 

pero el resultado es igual:

Array 
(
    [0] => hello 
hello 
hello 
hello 
hello 
hello 
hello 

) 
+1

qué sistema operativo está utilizando? Diferentes sistemas operativos tienen diferentes caracteres de línea nuevos: http://en.wikipedia.org/wiki/Newline –

Respuesta

23

Es necesario cambiar a '\n'"\n".

De PHP.net:

Si la cadena está encerrada en dobles comillas ("), PHP interpretará más secuencias de escape para las especiales caracteres:

\ n salto de línea (LF o 0x0A (10) en ASCII)
More...

+0

aceptará la respuesta en 10 minutos. Gracias. –

5

Lee manual

Nota: A diferencia de las sintaxis de comillas dobles y heredoc, variables y escapar secuencias de caracteres especiales se no pueden expandir cuando se producen en cadenas entre comillas sencillas.

a fin de utilizar "\ n" en lugar de '\ n'

Además, en lugar de \n puede utilizar PHP_EOL constante.
En el Windows "\ r \ n" puede ser utilizado como final de línea, para este caso se puede hacer doble sustitución:
$matches=explode("\n", str_replace("\r","\n",$matches));

Cuestiones relacionadas