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

Warning

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

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