fgetcsv

(PHP 4, PHP 5, PHP 7)

fgetcsvLê uma linha do ponteiro de arquivos e a interpreta como campos CSV

Descrição

fgetcsv ( resource $handle [, int $length = 0 [, string $delimiter = "," [, string $enclosure = '"' [, string $escape = "\" ]]]] ) : array

Similar à função fgets(), exceto que a fgetcsv() interpreta a linha em busca de campos no formato CSV e retorna um array contendo os campos lidos.

Parâmetros

handle

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

length

Deve ser maior do que a maior linha (em caracteres) a ser encontrada no arquivo CSV (considerando também os caracteres de fim-de-linha). Caso contrário a linha é dividida em partes de length caracteres, a não ser que a divisão ocorra dentro de um caractere que cerca os campos (enclosure).

Se omitir este parâmetro (ou configurá-lo como 0 no PHP 5.1.0 e posterior), o tamanho máximo das linhas não é limitado, o que é levemente mais lento.

delimiter

O parâmetro opcional delimiter define o delimitador de campo (somente um caractere).

enclosure

O parâmetro opctional enclosure define o caractere que cerca um campo (somente um caractere).

escape

O parâmetro opcional escape define o caractere de escape (somente um caractere).

Valor Retornado

Retorna um array numérico contendo os campos lidos.

Nota:

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

Nota: Se PHP não está apropriadamente reconhecendo o final de linha quando lendo arquivos ou criando por um computador Macintosh, habilitando a opção auto_detect_line_endings em tempo de execução pode ajudar a resolver o problema.

fgetcsv() retorna NULL se um parâmetro handle inválido for fornecido ou FALSE para outros erros, inclusive para fim de arquivo (end of file).

Changelog

Versão Descrição
5.3.0 O parâmetro escape foi adicionado
5.1.0 Agora length é opcional. O padrão é 0, que significa sem limite de comprimento.
4.3.5 fgetcsv() passou a ser segura para binários (binary-safe)

Exemplos

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

<?php
$row 
1;
if ((
$handle fopen("teste.csv""r")) !== FALSE) {
    while ((
$data fgetcsv($handle1000",")) !== FALSE) {
        
$num count($data);
        echo 
"<p> $num campos na linha $row: <br /></p>\n";
        
$row++;
        for (
$c=0$c $num$c++) {
            echo 
$data[$c] . "<br />\n";
        }
    }
    
fclose($handle);
}
?>

Notas

Nota:

A definição de localidade (locale) é levada em conta por esta função. Se LANG é, por exemplo, en_US.UTF-8, arquivos em codificação de um byte são lidos de maneira errada por esta função.

Veja Também

  • str_getcsv() - Analisa uma string CSV e retorna os dados em um array
  • explode() - Divide uma string em strings
  • file() - Lê todo o arquivo para um array
  • pack() - Pack data into binary string
  • fputcsv() - Formata a linha como CSV e a escreve em um ponteiro de arquivo

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top