Trabajo con CSV en PHP: biblioteca SplFileObject y funciones integradas

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es CSV y por qué es necesario trabajar con él en PHP?

CSV (Comma-Separated Values) es un formato de almacenamiento de datos tabulares donde las filas están separadas por saltos de línea y las columnas por comas u otros delimitadores. En PHP, trabajar con CSV es necesario para importar/exportar datos desde Excel, Google Sheets, sistemas CRM, así como para procesar registros (logs) e intercambiar datos entre servicios. La biblioteca estándar de PHP proporciona potentes herramientas para leer y escribir CSV sin necesidad de instalar módulos adicionales.

Funciones principales para trabajar con CSV

PHP tiene funciones integradas: fgetcsv() — para leer una línea CSV de un archivo, fputcsv() — para escribir un array en formato CSV, y la clase SplFileObject, que simplifica la iteración sobre archivos CSV. Para trabajar con memoria se puede usar str_getcsv() para analizar una cadena sin archivo.

Instalación

No se requiere instalación adicional, ya que las funciones son parte del núcleo de PHP. Para trabajar con CSV basta con tener habilitado el soporte para operaciones con archivos (generalmente habilitado por defecto).

Funciones principales y su aplicación

  • fgetcsv($handle, $length, $delimiter, $enclosure, $escape) — lee una línea de un archivo abierto y devuelve un array de campos.
  • fputcsv($handle, $fields, $delimiter, $enclosure, $escape) — escribe un array como una línea CSV en un archivo.
  • str_getcsv($input, $delimiter, $enclosure, $escape) — analiza una cadena CSV sin archivo.
  • SplFileObject::fgetcsv() — método para leer CSV en un estilo orientado a objetos.

Ejemplo de código en PHP

<?php// Lectura de archivo CSV$filename = 'data.csv';if (($handle = fopen($filename, 'r')) !== false) {    while (($data = fgetcsv($handle, 1000, ',')) !== false) {        echo 'Nombre: ' . $data[0] . ', Email: ' . $data[1] . '<br>';    }    fclose($handle);}

// Escritura en CSV$list = [ ['Iván', 'ivan@example.com'], ['María', 'maria@example.com']];$handle = fopen('output.csv', 'w');foreach ($list as $fields) { fputcsv($handle, $fields);}fclose($handle);

// Uso de SplFileObject$file = new SplFileObject('data.csv');$file->setFlags(SplFileObject::READ_CSV);foreach ($file as $row) { print_r($row);}?>

Cuándo usar

La biblioteca es adecuada para: importar productos desde Excel a una tienda en línea, exportar informes, procesar contactos desde CRM, cargar datos desde Google Sheets mediante exportación a CSV, así como para migrar datos entre sistemas. Para archivos grandes se recomienda usar los iteradores SplFileObject o la lectura línea por línea para evitar el desbordamiento de memoria.

Conclusión

Las herramientas integradas de PHP para trabajar con CSV son una solución confiable y rápida para la mayoría de las tareas. No requieren instalar bibliotecas adicionales, soportan varios delimitadores y caracteres de escape, y se integran fácilmente con bases de datos y formularios web. Si necesita procesar CSV en PHP, comience con fgetcsv() y fputcsv() — es el estándar de facto.

Recommendations