<?php //Syntax str_getcsv( string $string, string $separator = ",", string $enclosure = "\"",string $escape = "\\" ): array
This function takes four parameters:
$string
: the string to parse$separator
(optional): the delimiter (one single-byte character only), default delimiter is,
(comma).$enclosure
(optional): one character (single-byte), default enclosure character is"
, by default double-qutations marks will be deleted if a value surrounded by them. See example.$escape
(optional): the escape character (single-byte), default is backslash\
, use an empty string""
to disable this parameter.
The str_getcsv()
function reads data from a string and converted into an array. By default it parsed the comma separated values, see examples:
Example: Parses comma-delimited string into an array.
<?php $csvStr = '"a","b","c","d"'; $array = str_getcsv($csvStr); print_r($array); //Array ( [0] => a [1] => b [2] => c [3] => d )
Example: Parse tab-separated string into an array
<?php #Tab separated values enclosed in pipe sign $csvStr = '|a| |b| |c| |d|'; #Set tab as separator, use keyboard tab key or \t $array = str_getcsv($csvStr,"\t"); print_r($array); /*Array ( [0] => |a| [1] => |b| [2] => |c| [3] => |d| )*/ #Set separator and enclosure values $array = str_getcsv($csvStr,"\t", '|'); print_r($array); /*Array ( [0] => a [1] => b [2] => c [3] => d )*/
Example: Parses comma separated multi-line string into an array.
The ollowing example demonstrates, how to parse multiple lines of CSV data using str_getcsv()
function. First, we parsed the string, we used newline \n
as a separator and received lines (rows) and then parsed each line with the str_getcsv()
function to split the lines into individual cell values (array):
<?php $csvMultirows = 'h1,h2,h3,h4 a1,b1,c1,d1 a2,b2,c2,d2 a3,b3,c3,d3'; $rows = str_getcsv($csvMultirows, "\n"); echo '<pre>'; foreach ($rows as $row){ $cells = str_getcsv($row); foreach ($cells as $cell) echo $cell.' '; echo "\n"; } /* Prints: h1 h2 h3 h4 a1 b1 c1 d1 a2 b2 c2 d2 a3 b3 c3 d3*/
Working with arrays: