(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 caractere de contorno e o caractere de escape para a análise dos campos CSV.
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
enclosuresofre escape dentro de um campo através da duplicação; entretanto, o caractereescapepode 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 caractereenclosure, o caractereescapenão tem nenhum significado especial adicional; muito menos foi projetado para fazer escape de si mesmo.
        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.
       
 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.
   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.
  
| Versão | Descrição | 
|---|---|
| 8.4.0 | Depender do valor padrão de escapeagora está
        descontinuado. | 
| 7.4.0 | O parâmetro escapeagora 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 ?>
