SplFileObject::setCsvControl

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

SplFileObject::setCsvControlDefinir o delimitador, o encapsulador e o caractere de escape para CSV

Descrição

public SplFileObject::setCsvControl(string $separator = ",", string $enclosure = "\"", string $escape = "\\"): void

Define o delimitador, o caractere de contorno e o caractere de escape para a análise dos campos CSV.

Parâmetros

separator

O parâmetro separator define o delimitador de campo. Precisa ser um caractere de um byte.

enclosure

O parâmetro enclosure define o caractere que cerca um campo. Precisa ser um caractere de um byte.

escape

O parâmetro escape define o caractere de escape. Precisa ser um caractere de um byte ou uma string vazia. Uma string vazia ("") desabilita o mecanismo de escape proprietário.

Nota: Normalmente um caractere de enclosure sofre escape dentro de um campo através da duplicação; entretanto, o caractere escape pode ser usado como uma alternativa. Portanto, para os parâmetros padrões os valores "" e \" têm o mesmo significado. Além de permitir fazer escape no caractere enclosure, o caractere escape não tem nenhum significado especial adicional; muito menos foi projetado para fazer escape de 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.

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.

Valor Retornado

Nenhum valor é retornado.

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.
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::setCsvControl()

<?php
$file
= new SplFileObject("data.csv");
$file->setFlags(SplFileObject::READ_CSV);
$file->setCsvControl('|');
foreach (
$file as $row) {
list (
$fruit, $quantity) = $row;
// Faça algo com os valores
}
?>

Conteúdo de data.csv

<?php
apples|20
bananas|14
cherries|87
?>

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