league/csv para PHP: guia completo com exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução à biblioteca league/csv para PHP

\n\n

A biblioteca league/csv é uma ferramenta poderosa e conveniente para trabalhar com arquivos CSV (Comma-Separated Values) em PHP. Ela oferece aos desenvolvedores uma API simples, porém flexível, para ler, escrever, processar e transformar dados CSV. Diferentemente das funções nativas do PHP (fgetcsv, fputcsv), a league/csv oferece uma abordagem orientada a objetos, suporte a vários dialetos de CSV, trabalho com BOM (Byte Order Mark), processamento de arquivos grandes através de iteradores e muitos outros recursos úteis.

\n\n

Esta biblioteca faz parte do ecossistema The League of Extraordinary Packages e é considerada o padrão de facto para trabalhar com CSV em PHP. Ela é ativamente mantida, possui excelente documentação e é coberta por testes.

\n\n

Por que usar league/csv?

\n
    \n
  • Simplifica o trabalho com CSV: Em vez de gerenciar manualmente ponteiros de arquivo e loops, você trabalha com objetos e métodos intuitivos.
  • \n
  • Segurança: A biblioteca lida corretamente com escape de caracteres, aspas e quebras de linha dentro dos campos.
  • \n
  • Flexibilidade: Suporte a diferentes delimitadores (vírgula, ponto e vírgula, tabulação), caracteres de escape e delimitadores de string.
  • \n
  • Desempenho: O uso de geradores (yield) permite processar arquivos de qualquer tamanho sem carregar todo o conteúdo na memória.
  • \n
  • Funcionalidade: Métodos integrados para conversão para JSON, HTML, XML, ordenação, filtragem e transformação de colunas.
  • \n
\n\n

Instalação da biblioteca

\n\n

A instalação da league/csv é feita através do Composer — o gerenciador de dependências para PHP. Certifique-se de que o Composer está instalado no seu sistema.

\n\n

Abra o terminal no diretório raiz do seu projeto e execute o comando:

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

Após a instalação bem-sucedida, uma pasta vendor e os arquivos composer.json / composer.lock serão criados no seu projeto. Para incluir a biblioteca no seu script PHP, use o autoloader padrão do Composer:

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

Início rápido com exemplo de código

\n\n

Vamos criar um arquivo CSV simples, escrever dados nele e depois lê-los.

\n\n

Exemplo 1: Escrevendo dados em CSV

\n\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\Csv\\Writer;\n\n// Cria um objeto Writer\n$writer = Writer::createFromPath('usuarios.csv', 'w+');\n\n// Insere os cabeçalhos\n$writer->insertOne(['ID', 'Nome', 'Email']);\n\n// Insere várias linhas de dados\n$writer->insertAll([\n    [1, 'João Silva', 'joao@example.com'],\n    [2, 'Pedro Santos', 'pedro@example.com'],\n    [3, 'Ana Oliveira', 'ana@example.com'],\n]);\n\necho "Arquivo usuarios.csv criado com sucesso!";\n?>
\n\n

Exemplo 2: Lendo dados de CSV

\n\n
<?php\nrequire 'vendor/autoload.php';\n\nuse League\\Csv\\Reader;\n\n// Cria um objeto Reader\n$reader = Reader::createFromPath('usuarios.csv', 'r');\n$reader->setHeaderOffset(0); // Indica que a primeira linha são os cabeçalhos\n\n// Obtém todos os registros como arrays associativos\n$records = $reader->getRecords();\n\nforeach ($records as $record) {\n    echo "ID: " . $record['ID'] . ", Nome: " . $record['Nome'] . ", Email: " . $record['Email'] . "<br>";\n}\n?>
\n\n

Principais métodos e funções da biblioteca league/csv

\n\n

Vamos analisar os principais métodos que a biblioteca oferece para trabalhar com CSV.

\n\n

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

\n

O que faz: Cria um objeto Reader ou Writer para trabalhar com um arquivo no caminho especificado.

\n

Parâmetros:

\n

Recommendations