(PHP 5 >= 5.2.0, PHP 7, PHP 8)
SplFileObject::setCsvControl — Definir o delimitador, o encapsulador e o caractere de escape para CSV
$separator
= ",", string $enclosure
= "\"", string $escape
= "\\"): voidDefine o delimitador, o encapsulador e o caractere de escape para a análise dos campos CSV.
separator
O delimitador de campo (apenas um caractere de byte único).
enclosure
O caractere de encapsulamento de campo (apenas um caractere de byte único).
escape
O caractere de escape de campo (no máximo, um caractere de byte único).
Uma string vazia (""
) desativa o mecanismo de escape proprietário.
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.
Nenhum valor é retornado.
Versão | Descrição |
---|---|
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::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 ?>