Introdução à biblioteca league/csv para PHP
\n\nA 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.
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\nPor 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
Instalação da biblioteca
\n\nA 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\nAbra o terminal no diretório raiz do seu projeto e execute o comando:
\n\ncomposer require league/csv\n\nApó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:
require 'vendor/autoload.php';\n\nuse League\\Csv\\Reader;\nuse League\\Csv\\Writer;\nuse League\\Csv\\Statement;\n\nInício rápido com exemplo de código
\n\nVamos criar um arquivo CSV simples, escrever dados nele e depois lê-los.
\n\nExemplo 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\nExemplo 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\nPrincipais métodos e funções da biblioteca league/csv
\n\nVamos analisar os principais métodos que a biblioteca oferece para trabalhar com CSV.
\n\n1. Reader::createFromPath() e Writer::createFromPath()
\nO que faz: Cria um objeto Reader ou Writer para trabalhar com um arquivo no caminho especificado.
\nParâmetros:
\nTambém na biblioteca
Trabalhando com CSV em Rust: biblioteca csv e processamento de dados
Rate Limiting em Java: bibliotecas e ferramentas para controle de requisições (Bucket4j, Resilience4j)
Hibernate ORM: Ferramenta poderosa para trabalhar com bancos de dados em Java
Trabalhando com YAML em C++: bibliotecas yaml-cpp e rapidyaml