fgetcsv

(PHP 3>= 3.0.8, PHP 4 , PHP 5)

fgetcsv -- Le uma linha do ponteiro de arquivos e a interpreta por campos CSV

Descrição

array fgetcsv ( resource handle, int length [, string delimiter [, string enclosure]] )

Similar à fgets() exceto que fgetcsv() interpreta a linha que lê por campos no formato CSV e retorna um vetor (array) contendo os campos lidos. O terceiro parâmetro delimiter (opcional) tem como padrão a vígula, e o também opcional enclosure tem como padrão aspas. Tanto delimiter como enclosure só podem ter um caracter. Se qualquer um deles tiver mais que um caracter, somente o primeiro deles serão utilizados.

Nota: O parâmetro enclosure foi acrescentado no PHP 4.3.0.

O parâmetro handle tem que ser um ponteiro de arquivo válido para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen().

length tem que ser maior do que a maior linha a ser encontrada no arquivo CSV (incluindo caracteres de terminação de linha).

fgetcsv() retorna FALSE ao encontrar um erro, incluindo fim de arquivo (eof).

Nota: Uma linha em branco em um arquivo CSV será retornada como um array contendo um único campo nulo (null), e não será tratado como um erro.

Exemplo 1. Lê e imprime todo o conteúdo de um arquivo CSV

<?php
$row
= 1;
$handle = fopen ("test.csv","r");
while (
$data = fgetcsv ($handle, 1000, ",")) {
    
$num = count ($data);
    print
"<p> $num campos na linha $row: <br>";
    
$row++;
    for (
$c=0; $c < $num; $c++) {
        print
$data[$c] . "<br>";
    }
}
fclose ($handle);
?>

Veja também explode(), file() e pack()