2012-02-20 16 views
5

Tengo un área de texto que contiene números de teléfono, cada número en una línea separada. Quiero explotar esa cadena en una matriz mediantePHP: explotar las líneas textarea como elemento de matriz separado

explode("\n", $numbers); 

o

explode("\r\n", $numbers); 

Esto no está funcionando. Por favor, ayúdame. ¡Gracias!

+3

Si usted es tan inteligente, dime, lo que está mal aquí? –

+1

¿Quiso escribir 'explotar (" \ n ", $ números);' o 'explotar (" \ r \ n ", $ números);'? ¿O estás escribiendo ambas afirmaciones una al lado de la otra como una sola línea como esa? –

+0

Debería publicar un poco más de código, el formulario HTML y un poco más de código circundante. – h00ligan

Respuesta

6

$records = preg_split('/[\r\n]+/', $mystring, -1, PREG_SPLIT_NO_EMPTY);

Esto debe hacerlo.

6

Como dice manual: Devuelve una matriz de cadenas.

Así que tendrá que almacenar el resultado. El or tampoco funcionará de esa manera. Si no sabe si la entrada contendrá \n o \r\n, podría hacer un reemplazo para reemplazar \r por una cadena vacía, luego explotar en \n.

Esto debe hacer el truco:

$numbers = explode("\n", str_replace("\r", "", $numbers)); 
+1

tienes razón, por supuesto. Los datos enviados por el usuario no se pueden traducir al EOL del sistema. comentario retirado. –

1

Utilice esta

<?php 

$input = $_POST['textarea_name']; 
$new_array = array_values(array_filter(explode(PHP_EOL, $input))); 

// explode -> convert textarea to php array (that lines split by new line) 
// array_filter -> remove empty lines from array 
// array_values -> reset keys of array 

?> 
Cuestiones relacionadas