Leer un CSV desde PHP

Rate this post

A veces nos encontramos con el origen de los datos es un csv, vamos a explicar a leer un csv en php y mostrarlo en una tabla html.

Para ello vamos a explciar primero las funciones php que vamos a utilizar.

Primero utilizaremos la función str_getcsv que convierte un string con formato CSV a un array http://php.net/manual/es/function.str-getcsv.php

Y despues utilizaremos array_map que aplica la retrollamada a los elementos de los arrays dados http://php.net/manual/es/function.array-map.php

Para entendernos, lo que vamos a hacer es convertir el csv en una matriz con las funciones str_getcsv y array_map y kostrarlo en una tabla html recorriendo la matriz

Ahora paso a explicar las partes del codigo.

En estas dos lineas definimos la ubicacion del csv y creamos una variable donde gaurdamos el csv en una matriz.

 
<?php 
//ubicacion csv 
define('CSV', '100Records.csv'); 

//leer csv 
$readCsv = array_map('str_getcsv', file(CSV)); 
?> 

Y despues recorremos la matriz en dos bucles, uno para las filas y otro para las celdas

foreach ($readCsv as $itemCsv) {
	//recorremos cerdas del csv
	foreach ($itemCsv as $elementoItemCSV) {
		//mostramos la celda
			echo $elementoItemCSV;
	}
}

El resultado final es el siguiente:

Y el codigo completo es el siguiente y lo podeis ver aqui en funcionamiento: http://programacionconphp.com/dev/readCSV/

 
<?php 
//index.php 

//ubicacion csv 
define('CSV', '100Records.csv'); 

//leer csv 
$readCsv = array_map('str_getcsv', file(CSV)); 
?> 
<html> 
 <table border="1"> 
 <?php 
 //recorremos filas del csv 
 foreach ($readCsv as $itemCsv) { 
   echo '<tr>'; 
   //recorremos celdas del csv 
    foreach ($itemCsv as $elementoItemCSV) { 
     echo '<td>'; 
     //mostramos la celda 
     echo $elementoItemCSV; 
     echo '</td>'; 
    } 
    echo '</tr>'; 
   } 
  ?> 
 </table> 
</html> 

El codigo del ejemplo lo podeis obtener desde aqui: https://github.com/victorgarciasisi/readCSV

Deja un comentario