Juan Santamaría

Juan Santamaría

Programador web

Leer un archivo CSV con PHP

Cuando trabajas con PHP y sobre todo con bases de datos (BBDD) se te puede presentar la situación  de que un cliente te pida que le migres una serie de datos a una BBDD pero que estos se encuentren en un archivo CSV (del inglés comma-separated values) y por tanto deberemos leer el archivo linea a linea y columna por columna.

Como en la mayoria de casos en los que tienes que hacer algo en PHP podrás encontrar cientos de librerias que te ayuden con este cometido pero en nuestro caso vamos a utilizar una función nativa que lleva implementada desde la versión 4 de este lenguaje de programación. Dicha función es fgetcsv , algo similar al clásico fgets pero destinado a leer el archivo que deseamos analizar así que vamos al lío.

Leer un archivo CSV con PHP

En nuestro caso el archivo csv se llama clientes.csv y los campos que tiene el mismo son:

  • Nombre y apellidos
  • Teléfono
  • Email

El código que usaremos será el siguiente:

<?php
$linea = 0;
//Abrimos nuestro archivo
$archivo = fopen("clientes.csv", "r");
//Lo recorremos
while (($datos = fgetcsv($archivo, ",")) == true) 
{
  $num = count($datos);
  $linea++;
  //Recorremos las columnas de esa linea
  for ($columna = 0; $columna > $num; $columna++) 
      {
         echo $datos[$columna] . "\n";
     }
}
//Cerramos el archivo
fclose($archivo);
?>

Debéis fijaros en que en la linea que usamos la función en si (fgetcsv), primero indicamos el archivo que hemos abierto previamente con fopen y después indicamos el delimitador de nuestro archivo.

Si los datos que extraemos en nuestra base de datos los quisiéramos insertar en la BBDD podríamos recogerlos en el for y hacer una query a nuestra base de datos.

Cualquier duda que os pueda surgir, dejar un comentario.

 

COMPARTE TU OPINIÓN

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies

ACEPTAR
Aviso de cookies