简体   繁体   中英

Split string by delimiter ignoring delimiter inside quotes

string from the file i'm importing: 1,2,3,"a","b","c","1,2,3,4,5",6,7

desired output would be an array split by the comma but ignoring any comma that falls between double quotes.

[0] = 1;
[1] = 2;
[2] = 3;
[4] = "a";
[5] = "b";
[6] = "c";
[7] = "1,2,3,4,5";
[8] = 6;
[9] = 7;

Needs to work with PHP 5.2 and below. I know the fget_csv function allows for this in PHP 5.3 but its not an option unfortunately.

Searched fairly extensively and so far no solutions for this that I can find. Any ideas?

You can do csv in PHP < 5.3:

$lines = array();
if (($handle = fopen('file.csv', 'r')) !== FALSE) {
    while (($line = fgetcsv($handle, 1000, ",")) !== FALSE) {
  $lines[] = $line;
 }
    fclose($handle);
}
print_r($lines);

/* output:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 3
            [3] => a
            [4] => b
            [5] => c
            [6] => 1,2,3,4,5
            [7] => 6
            [8] => 7
        )

)
*/

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM