SplFileObject::fputcsv
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
SplFileObject::fputcsv — Escreve um array de campos como uma linha CSV
Descrição
array
$fields
,string
$separator
= ",",string
$enclosure
= "\"",string
$escape
= "\\",string
$eol
= "\n"): int|false
Escreve o array de fields
no arquivo como uma linha CSV.
Parâmetros
fields
-
Um array de valores.
separator
-
O parâmetro opcional
separator
define o delimitador de campo (apenas um caractere de byte único). enclosure
-
O parâmetro opcional
enclosure
define o envólucro de campo (apenas um caractere de byte único). escape
-
O parâmetro opcional
escape
define o caractere de escape (no máximo um caractere de byte único). Uma string vazia (""
) desativa o mecanismo de escape proprietário. 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.
Note:
Se um caractere de
enclosure
estiver contido em um campo, ele será escapado duplicando-o, a menos que seja imediatamente precedido por umescape
.
Valor Retornado
Retorna o comprimento da string escrita ou false
em caso de falha.
Retorna false
, e não escreve a linha CSV no arquivo, se o
parâmetro separator
ou enclosure
não for um único caractere.
Erros/Exceções
Um erro de nível E_WARNING
é emitido se o
parâmetro separator
ou enclosure
não for um único caractere.
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 também aceita uma string vazia
para desativar o mecanismo de escape proprietário.
|
Exemplos
Example #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"""
Veja Também
- fputcsv() - Formata a linha como CSV e a escreve em um ponteiro de arquivo
- SplFileObject::fgetcsv() - Obtém linha do arquivo e interpreta como campos CSV