(PHP 5 >= 5.3.0, PHP 7, PHP 8)
str_getcsv — Parse a CSV string into an array
$string,$separator = ",",$enclosure = "\"",$escape = "\\"Parses a string input for fields in CSV format and returns an array containing the fields read.
Note:
The locale settings are taken into account by this function. If
LC_CTYPEis e.g.en_US.UTF-8, strings in one-byte encodings may be read wrongly by this function.
stringThe string to parse.
separatorSet the field delimiter (one single-byte character only).
enclosureSet the field enclosure character (one single-byte character only).
escape
Set the escape character (at most one single-byte character). Defaults as a backslash
(\)
An empty string ("") disables the proprietary escape mechanism.
Note: Usually an
enclosurecharacter is escaped inside a field by doubling it; however, theescapecharacter can be used as an alternative. So for the default parameter values""and\"have the same meaning. Other than allowing to escape theenclosurecharacter theescapecharacter has no special meaning; it isn't even meant to escape itself.
Returns an indexed array containing the fields read.
| Version | Description |
|---|---|
| 7.4.0 |
The escape parameter now interprets an empty
string as signal to disable the proprietary escape mechanism. Formerly,
an empty string was treated like the default parameter value.
|
Example #1 str_getcsv() example
<?php
$string = 'PHP,Java,Python,Kotlin,Swift';
$data = str_getcsv($string);
var_dump($data);
?>The above example will output:
array(5) {
[0]=>
string(3) "PHP"
[1]=>
string(4) "Java"
[2]=>
string(6) "Python"
[3]=>
string(6) "Kotlin"
[4]=>
string(5) "Swift"
}
Example #2 str_getcsv() example with an empty string
On an empty string this function returns the value [null]
instead of an empty array.
<?php
$string = '';
$data = str_getcsv($string);
var_dump($data);
?>The above example will output:
array(1) {
[0]=>
NULL
}