(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SplFileObject::fputcsv — Escreve um array de campos como uma linha CSV
$fields
,$separator
= ",",$enclosure
= "\"",$escape
= "\\",$eol
= "\n"
Escreve o array de fields
no arquivo
como uma linha CSV.
fields
Um array de valores.
separator
O delimitador de campo (apenas um caractere de um byte).
Padrão é uma vírgula (,
) ou o valor definido por uma chamada anterior a
SplFileObject::setCsvControl().
enclosure
O caractere de delimitador de campo (apenas um caractere de um byte).
Padrão é uma aspa dupla ("
) ou o valor definido por uma chamada anterior a
SplFileObject::setCsvControl().
escape
O caractere de escape (no máximo um caractere de um byte).
O caractere de delimitação do campo (apenas um caractere de um byte).
Padrão é uma barra invertida (\
) ou o valor definido por uma chamada anterior a
SplFileObject::setCsvControl().
Uma string vazia (""
) desativa o mecanismo de escape proprietário.
Nota: Geralmente, um caractere de
enclosure
é escapado dentro de um campo duplicando-o; no entanto, o caractere deescape
pode ser usado como alternativa. Assim, para os valores padrão dos parâmetros""
e\"
têm o mesmo significado. Além de permitir escapar o caractere deenclosure
, o caractere deescape
não tem significado especial; nem mesmo é destinado a escapar a si mesmo.
A partir do PHP 8.4.0, depender do valor padrão de
escape
foi descontinuado.
Ele precisa ser fornecido explicitamente tanto por posição quanto pelo uso
de argumentos nomeados,
ou por uma chamada a SplFileObject::setCsvControl().
eol
O parâmetro opcional eol
define uma
sequência de fim de linha personalizada.
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 de
enclosure
estiver contido em um campo, ele será escapado duplicando-o, a menos que seja imediatamente precedido por umescape
.
Retorna o comprimento da string escrita ou false
em caso de falha.
Lança uma ValueError se
separator
ou enclosure
não tiver comprimento de um byte.
Lança uma ValueError se
escape
não tiver comprimento de um byte ou se for uma string vazia.
Versão | Descrição |
---|---|
8.4.0 |
Depender do valor padrão de escape agora está
descontinuado.
|
8.1.0 |
O parâmetro opcional eol foi adicionado.
|
7.4.0 |
O parâmetro escape agora também aceita uma string vazia
para desativar o mecanismo de escape proprietário.
|
Exemplo #1 Exemplo de SplFileObject::fputcsv()
<?php
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$file = new SplFileObject('file.csv', 'w');
foreach ($list as $fields) {
$file->fputcsv($fields);
}
?>
O exemplo acima escreverá o seguinte em file.csv
:
aaa,bbb,ccc,dddd 123,456,789 """aaa""","""bbb"""