PHP: Leer, tratar y crear ficheros CSV

Los ficheros CSV (Comma separated values) son ficheros en los que los datos aparecen organizados en base a un separador (una coma, una tabulación, etc) y saltos de línea.

Es un formato muy utilizado por sencillez, su rapidez de generación y porque Excel es compatible con él. En mi opinión este último factor, la inmensa popularidad de Excel, ha sido la causa con mayor peso de su éxito actual.

Debido a su amplio uso PHP dispone de instrucciones específicas para su manejo:

  • fgetcsv
  • fputcsv
  • str_getcsv
La instrucción fgetcsv sirve para procesar una línea del fichero CSV y convertirla en un array. Si queremos procesar todas las líneas del fichero tendremos que montar un bucle que lo recorra por completo.

<?php
$file = fopen("fichero.csv","r");

while(! feof($file))
  {
  print_r(fgetcsv($file));
  }

fclose($file);
?>

La instrucción putcsv formatea unos datos como una línea csv y los escribe en un fichero abierto. En este ejemplo $array es un array que contiene un array por cada celda. Estamos poniendo ; como carácter separador.

<?php

$fp = fopen('file.csv', 'w');

foreach ($array as $fields) {
    fputcsv($fp, $fields, ";");
}

fclose($fp);
?>


La instrucción str_getcsv convierte un fichero csv en un array.



<?php

$csv = array_map('str_getcsv', file('data.csv'));
?>


Comentarios