(PHP 5 >= 5.1.0, PHP 7, PHP 8)
fputcsv — Formata a linha como CSV e a escreve em um ponteiro de arquivo
$stream
,$fields
,$separator
= ",",$enclosure
= "\"",$escape
= "\\",$eol
= "\n"
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
.
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.
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.
Nota:
Se um caractere
enclosure
estiver contido em um campo, ele sofrerá escape por duplicação, a menos que seja imadiatamente precedido por umescape
.
Retorna o comprimento da string escrita ou false
em caso de falha.
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.
|
Exemplo #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"""
Nota: 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.