(PHP 5 >= 5.3.0, PHP 7, PHP 8)
str_getcsv — Analisa uma string CSV e retorna os dados em um array
$string
,$separator
= ",",$enclosure
= "\"",$escape
= "\\"Interpreta uma string de entrada procurando por campos no formato CSV e retorna um array contendo os campos encontrados.
Nota:
As configurações de localidade são levadas em consideração por esta função. Se
LC_CTYPE
for, por exemplo,en_US.UTF-8
, strings com codificação de um byte podem ser lidas incorretamente por esta função.
string
A string a ser analisada.
separator
Define o delimitador de campos (somente um caractere de um byte).
enclosure
Define o caractere que envolve os campos (somente um caractere de um byte).
escape
Define o caractere de escape (no máximo um caractere de um byte). O valor padrão é a barra invertida. (\
) Uma string vazia (""
) desabilita o mecanismo proprietário de escape.
Nota: Normalmente um caractere de
enclosure
é escapado dentro do campo por duplicação; entretanto, o caratere definido emescape
pode ser utilizado como alternativa. Então, para os valores do parâmetro padrões""
e\"
têm o mesmo significado. Além de permitir escapar o caractere deenclosure
, o caractere deescape
não possui significado especial; nem mesmo para escapar a si mesmo.
Retorna um array indexado contendo os campos lidos.
Versão | Descrição |
---|---|
7.4.0 | O parâmetro escape agora interpreta uma string vazia como o sinal para desabilitar o mecanismo de escape. Antes, uma string vazia era tratada como valor padrão do parâmetro. |
Exemplo #1 Exemplo de str_getcsv()
<?php
$string = 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);
var_dump($data);
?>
O exemplo acima produzirá:
array(5) { [0]=> string(3) "PHP" [1]=> string(4) "Java" [2]=> string(6) "Python" [3]=> string(6) "Kotlin" [4]=> string(5) "Swift" }
Exemplo #2 Exemplo de str_getcsv()com uma string vazia
Com uma string vazia esta função retorna o valor [null]
em vez de um array vazio.
<?php
$string = '';
$data = str_getcsv($string);
var_dump($data);
?>
O exemplo acima produzirá:
array(1) { [0]=> NULL }