2011-03-18 23 views
6

Tengo un problema al usar un archivo CSV cargado a través de un formulario PHP. Aquí está el código:CSV importaciones; todos los valores son una fila

$row = 1; 
if (($handle = fopen($_FILES['csv']['tmp_name'], "r")) !== FALSE) { 
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { 
     $num = count($data); 
     echo "<p> $num fields in line $row: <br /></p>\n"; 
     $row++; 
     for ($c=0; $c < $num; $c++) { 
      echo $data[$c] . "<br />\n"; 
     } 
    } 
    fclose($handle); 
} 

El único problema es, cuando estoy interrogando a la variable $data aparece el contenido del archivo CSV se escriben en una fila, en lugar de múltiples filas. Como resultado, obtengo una matriz de 228 valores de columna.

¿Por qué es esto? ¿Mi script PHP no detecta correctamente una nueva línea? Si es así, ¿existe una opción para corregir este comportamiento?

Respuesta

6

problema más probable es los finales de línea en los datos de origen. ¿Podría hacer un archivo CSV de prueba con varias columnas y filas para confirmar o eliminar los datos con los que está probando?

Véase también: http://www.php.net/manual/en/filesystem.configuration.php#ini.auto-detect-line-endings

+0

Esa es la única; ¡Gracias! –

+0

Gracias por esto, tanto la pregunta como las respuestas estaban a punto de comenzar a golpearme en la cabeza con frustración – Polsonby

Cuestiones relacionadas