Subir, leer y separar los datos de un archivo (CSV) en PHP

Actualizado 31/03/2013

Si necesitamos subir un archivo que esté separado por comas (CSV) o por cualquier otro carácter (en el ejemplo, con tabulador), entonces podemos utilizar el siguiente código:

Archivo1.php

subir_archivo.php

CSV de ejemplo

En fp, abre archivo que se envía desde el archivo 1.

Data primero obtiene todo el texto que está en fp [$data = fgets($fp)].

Después se hace un explode a data, es decir, se vectorizan los valores que se encuentran separados por lo que quiera el usuario [$data = explode(” “, $data = fgets($fp))] y se vuelve a guardar en data.

Si el archivo que se envió tiene la siguiente información:
dato1    dato2    dato3    dato4    dato5

Entonces explode crea un vector (arreglo) y en cada celda guarda el valor que se encuentre separado por el primer parámetro que se le envió a explode. (En el ejemplo fue tabulador o coma).

Por lo tanto en el vector data tendría el siguiente valor:

0          1           2           3           4
dato1   dato2    dato3    dato4    dato5

Y finalmente cerramos el archivo abierto

fclose($fp))

Si queremos acceder a lo que contiene la celda 3, lo hacemos con el nombre del vector, y su posición:

echo $data[3]
//Nos muestra dato4

Se puede descargar el código fuente y el ejemplo desde

https://bitbucket.org/Angelos/self-devel-csv/overview

En el panel de la derecha, en Download

Author: angelinux

Desarrollador de páginas web desde el año 2000 y con experiencia en programación de sistemas para empresas desde el 2008; cofundador de CONSoluciones; autor del blog de software libre “Angelinux-slack”; docente en maestría en UPAV y fundador de la distribución Linux Falco que está en desarrollo para la Universidad Veracruzana.
Además, ponente, organizador de congreso, laborista social, impartidor de cursos de programación y servidores Linux, webmaster, y ex invitado en programa de televisión.

1 thought on “Subir, leer y separar los datos de un archivo (CSV) en PHP

  1. Hola que tal muy bueno tu script, me gustaria saber si me podrias proporcionar un ejemplo para actualizar una tabla en base de datos con datos de un archivo csv desde php por medio de un campo input tipo file

Deja un comentario