【问题标题】:Split string by delimiter ignoring delimiter inside quotes通过分隔符拆分字符串,忽略引号内的分隔符
【发布时间】:2010-09-20 21:31:39
【问题描述】:

我正在导入的文件中的字符串:1,2,3,"a","b","c","1,2,3,4,5",6,7

所需的输出将是一个由逗号分隔的数组,但忽略位于双引号之间的任何逗号。

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

需要使用 PHP 5.2 及以下版本。我知道 fget_csv 函数在 PHP 5.3 中允许这样做,但不幸的是它不是一个选项。

搜索得相当广泛,到目前为止我找不到任何解决方案。有什么想法吗?

【问题讨论】:

标签: php


【解决方案1】:

你可以在 PHP

$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
        )

)
*/

【讨论】:

  • 这正是我所需要的。我试图使用一个把事情搞砸的爆炸。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-02
相关资源
最近更新 更多