Trabalho com CSV em PHP: biblioteca SplFileObject e funções integradas

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
```html

O que é CSV e por que trabalhar com ele em PHP?

CSV (Comma-Separated Values) é um formato de armazenamento de dados tabulares, onde as linhas são separadas por quebras de linha e as colunas por vírgulas ou outros delimitadores. Em PHP, trabalhar com CSV é necessário para importar/exportar dados do Excel, Google Sheets, sistemas de CRM, bem como para processar logs e trocar dados entre serviços. A biblioteca padrão do PHP fornece ferramentas poderosas para ler e escrever CSV sem instalar módulos adicionais.

Funções principais para trabalhar com CSV

O PHP possui funções embutidas: fgetcsv() — para ler uma linha CSV de um arquivo, fputcsv() — para escrever um array no formato CSV, e também a classe SplFileObject, que simplifica a iteração sobre arquivos CSV. Para trabalhar com memória, você pode usar str_getcsv() para analisar uma string sem arquivo.

Instalação

Nenhuma instalação adicional é necessária, pois as funções fazem parte do núcleo do PHP. Para trabalhar com CSV, basta ter o suporte a operações de arquivo habilitado (geralmente já está habilitado por padrão).

Funções principais e sua aplicação

  • fgetcsv($handle, $length, $delimiter, $enclosure, $escape) — lê uma linha de um arquivo aberto e retorna um array de campos.
  • fputcsv($handle, $fields, $delimiter, $enclosure, $escape) — escreve um array como uma linha CSV em um arquivo.
  • str_getcsv($input, $delimiter, $enclosure, $escape) — analisa uma string CSV sem usar um arquivo.
  • SplFileObject::fgetcsv() — método para ler CSV no estilo orientado a objetos.

Exemplo de código em PHP

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

// Escrita em CSV$list = [ ['João', 'joao@example.com'], ['Maria', 'maria@example.com']];$handle = fopen('output.csv', 'w');foreach ($list as $fields) { fputcsv($handle, $fields);}fclose($handle);

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

Quando usar

A biblioteca é adequada para: importar produtos do Excel para uma loja online, exportar relatórios, processar contatos de CRM, carregar dados do Google Sheets via exportação para CSV, bem como para migrar dados entre sistemas. Para arquivos grandes, recomenda-se usar iteradores SplFileObject ou leitura linha por linha para evitar estouro de memória.

Conclusão

As ferramentas embutidas do PHP para trabalhar com CSV são uma solução confiável e rápida para a maioria das tarefas. Elas não exigem instalação de bibliotecas adicionais, suportam vários delimitadores e escape, e se integram facilmente com bancos de dados e formulários web. Se você precisa processar CSV em PHP, comece com fgetcsv() e fputcsv() — este é o padrão de facto.

```

Recommendations