league/csv para PHP: guía completa con ejemplos

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

Introducción a la biblioteca league/csv para PHP

\n\n

La biblioteca league/csv es una herramienta potente y conveniente para trabajar con archivos CSV (Comma-Separated Values) en PHP. Proporciona a los desarrolladores una API simple pero flexible para leer, escribir, procesar y transformar datos CSV. A diferencia de las funciones integradas de PHP (fgetcsv, fputcsv), league/csv ofrece un enfoque orientado a objetos, soporte para diferentes dialectos CSV, manejo de BOM (Byte Order Mark), procesamiento de archivos grandes a través de iteradores y muchas otras características útiles.

\n\n

Esta biblioteca es parte del ecosistema The League of Extraordinary Packages y se considera el estándar de facto para trabajar con CSV en PHP. Se mantiene activamente, tiene una excelente documentación y está cubierta por pruebas.

\n\n

¿Para qué sirve league/csv?

\n
    \n
  • Simplificación del trabajo con CSV: En lugar de gestionar manualmente punteros de archivo y bucles, trabajas con objetos y métodos comprensibles.
  • \n
  • Seguridad: La biblioteca maneja correctamente el escape de caracteres, las comillas y los saltos de línea dentro de los campos.
  • \n
  • Flexibilidad: Soporte para diferentes delimitadores (coma, punto y coma, tabulación), caracteres de escape y delimitadores de cadena.
  • \n
  • Rendimiento: El uso de generadores (yield) permite procesar archivos de cualquier tamaño sin cargar todo el contenido en la memoria.
  • \n
  • Funcionalidad: Métodos integrados para conversión a JSON, HTML, XML, ordenamiento, filtrado y transformación de columnas.
  • \n
\n\n

Instalación de la biblioteca

\n\n

La instalación de league/csv se realiza a través de Composer, el gestor de dependencias para PHP. Asegúrate de que Composer esté instalado en tu sistema.

\n\n

Abre la terminal en el directorio raíz de tu proyecto y ejecuta el comando:

\n\n
composer require league/csv
\n\n

Después de una instalación exitosa, en tu proyecto aparecerán la carpeta vendor y los archivos composer.json / composer.lock. Para incluir la biblioteca en un script PHP, usa el cargador automático estándar de Composer:

\n\n
require 'vendor/autoload.php';\n\nuse League\\Csv\\Reader;\nuse League\\Csv\\Writer;\nuse League\\Csv\\Statement;
\n\n

Inicio rápido con un ejemplo de código

\n\n

Vamos a crear un archivo CSV simple, escribir datos en él y luego leerlos.

\n\n

Ejemplo 1: Escritura de datos en CSV

\n\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\Csv\\Writer;\n\n// Crear un objeto Writer\n$writer = Writer::createFromPath('users.csv', 'w+');\n\n// Insertar encabezados\n$writer->insertOne(['ID', 'Nombre', 'Email']);\n\n// Insertar varias filas de datos\n$writer->insertAll([\n    [1, 'Iván Ivanov', 'ivan@example.com'],\n    [2, 'Pedro Petrov', 'petr@example.com'],\n    [3, 'Ana Smirnova', 'anna@example.com'],\n]);\n\necho "¡Archivo users.csv creado exitosamente!";\n?>
\n\n

Ejemplo 2: Lectura de datos desde CSV

\n\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\Csv\\Reader;\n\n// Crear un objeto Reader\n$reader = Reader::createFromPath('users.csv', 'r');\n$reader->setHeaderOffset(0); // Indicar que la primera fila son los encabezados\n\n// Obtener todos los registros como arreglos asociativos\n$records = $reader->getRecords();\n\nforeach ($records as $record) {\n    echo "ID: " . $record['ID'] . ", Nombre: " . $record['Nombre'] . ", Email: " . $record['Email'] . "<br>";\n}\n?>
\n\n

Métodos y funciones principales de la biblioteca league/csv

\n\n

Veamos los métodos clave que proporciona la biblioteca para trabajar con CSV.

\n\n

1. Reader::createFromPath() y Writer::createFromPath()

\n

Qué hace: Crea un objeto Reader o Writer para trabajar con un archivo en la ruta especificada.

\n

Parámetros:

\n

Recommendations