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]]] )

handle

Um ponteiro de arquivo válido para um arquivo aberto com sucesso por fopen(), popen() ou fsockopen().

length (Opcional)

Deve ser maior do que a maior linha (em caracteres) a ser encontrada no arquivo CSV (permitindo caracteres de fim-de-linha). Se tornou opcional no PHP 5. Omitir este parâmetro (ou defini-lo como 0 no PHP 5.0.4 e posterior) o limite máximo de tamanho da linha não é limitado, o que é levemente mais lento.

delimiter (Opcional)

Define o delimitador de campo (somente um caractere). O padrão é uma vírgula.

enclosure (Opcional)

Define o caractere que contém um campo (somente um caractere). O padrão é aspas duplas. Adicionado no PHP 4.3.0.

Similar a fgets() exceto que fgetcsv() interpreta a linha que lê por campos no formato CSV (campos separados por vírgula) e retorna um array contendo os camos lidos.

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, ",")) !== FALSE) {
    
$num = count ($data);
    echo
"<p> $num fields in line $row: <br /></p>\n";
    
$row++;
    for (
$c=0; $c < $num; $c++) {
        echo
$data[$c] . "<br />\n";
    }
}
fclose ($handle);
?>

fgetcsv() é seguro para binários desde PHP 4.3.5

Nota: A definição do local é levada em conta por esta função. Se LANG é e.g. en_US.UTF-8, arquivos em codificação de um byte(ex iso-8859-1) são lidos de maneira errada por esta função.

Nota: Se você está tendo problemas com o PHP no reconhecimento do final de linha quando criando ou lendo arquivos num computador Macintosh, você pode habilitar a opção auto_detect_line_endings.

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