PHP 8.4.1 Released!

SplFileObject::fputcsv

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SplFileObject::fputcsvEscreve um array de campos como uma linha CSV

Descrição

public SplFileObject::fputcsv(
    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 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). 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 de escape 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 de enclosure, o caractere de escape não tem significado especial; nem mesmo é destinado a escapar a si mesmo.

Aviso

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.

Aviso

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 um escape.

Valor Retornado

Retorna o comprimento da string escrita ou false em caso de falha.

Erros/Exceções

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.

Registro de Alterações

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.

Exemplos

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"""

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top