fputcsv
(PHP 5 >= 5.1.0, PHP 7, PHP 8)
fputcsv — Formata a linha como CSV e a escreve em um ponteiro de arquivo
Descrição
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.
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 umescape
.
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.