(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.
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.