fputcsv

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

fputcsvFormata a linha como CSV e a escreve em um ponteiro de arquivo

Descrição

fputcsv(
    resource $stream,
    array $fields,
    string $separator = ",",
    string $enclosure = "\"",
    string $escape = "\\",
    string $eol = "\n"
): int|false

fputcsv() formata uma linha (passada como um array de campos fields) como CSV e a escreve (terminando com uma nova linha) no fluxo de arquivo especificado por stream.

Parâmetros

stream

O ponteiro de arquivo deve ser válido e deve apontar para um arquivo aberto com sucesso por fopen() ou fsockopen() (e ainda não fechado por fclose()).

fields

Um array de strings.

separator

O parâmetro opcional separator configura o caractere delimitador (apenas um caractere de um byte).

enclosure

O parâmetro opcional enclosure configura o caractere que envolve os dados (apenas um caractere de um byte).

escape

O parâmetro opcional escape configura o caractere de escape (no máximo um caractere de um byte). Uma string vazia ("") desabilita o mecanismo de escape proprietário.

eol

O parâmetro opcional eol define uma sequencia customizada de Fim de Linha.

Warning

Quando o parâmetro escape for definido para algo diferente de uma string vazia (""), isso pode resultar em um CSV que não esteja conforme a » RFC 4180 ou que não seja capaz de sobreviver a uma viagem de ida e volta através das funções CSV do PHP. O padrão para escape é "\\", portanto é recomendado defini-lo explicitamente para a string vazia. O valor padrão será alterado em uma versão futura do PHP, mas não antes do PHP 9.0.

Note:

Se um caractere enclosure estiver contido em um campo, ele sofrerá escape por duplicação, a menos que seja imadiatamente precedido por um escape.

Valor Retornado

Retorna o comprimento da string escrita ou false em caso de falha.

Registro de Alterações

Versão Descrição
8.1.0 O parâmetro opcional eol foi adicionado.
7.4.0 O parâmetro escape agora aceita uma string vazia para desabilitar o mecanismo de escape proprietário.

Exemplos

Example #1 Exemplo da fputcsv()

<?php

$lista = array (
    array('aaa', 'bbb', 'ccc', 'dddd'),
    array('123', '456', '789'),
    array('"aaa"', '"bbb"')
);

$fp = fopen('file.csv', 'w');

foreach ($lista as $linha) {
    fputcsv($fp, $linha);
}

fclose($fp);
?>

O exemplo acima irá escrever o seguinte no arquivo file.csv:

aaa,bbb,ccc,dddd
123,456,789
"""aaa""","""bbb"""

Notas

Note: Se o PHP não estiver reconhecendo corretamente os finais de linha ao ler arquivos em um computador Macintosh ou que foram criados em um, habilitar a opção de configuração em tempo de execução auto_detect_line_endings pode ajudar a resolver o problema.

Veja Também

  • fgetcsv() - Lê uma linha do ponteiro de arquivos e a interpreta como campos CSV