0

我正在使用 SimpleExcel 类来解析 php 中的 CSV 文件。在这个 csv 文件中有带有逗号、空格和输入的 bluk 数据,当类解析 csv 文件并创建对象时,它会返回错误的数组(一行分成多于一行)

$excel = new SimpleExcel('CSV');
$excel->parser->loadFile($fileName, 'CSV');
for ($i = 1; $i < $read; $i++) 
{
    $this->object[] = $excel->parser->getRow($i);
}

'$this->object' 对象返回错误的数组示例 CSV:

  • 自 1500 年代以来使用的标准 Lorem Ipsum 通道
  • 标准,Lorem,Ipsum,通道,使用,自 1500 年代以来

块引用

[28] => Array
    (
        [0] => the
        [1] =>  standard
        [2] =>  Lorem
        [3] =>  Ipsum 

    )

[29] => Array
    (
        [0] => passage
        [1] => used since the 1500s
        [2] => 
        [3] => 

    )

29 数组包含 28 数组的值。实际上这是一个数组,它分为两个不同的数组

I want array like that
[28] => Array
    (
        [0] => The standard
        [1] =>  Lorem Ipsum passage
        [2] =>  used since the 1500s
    )

[29] => Array
    (
        [0] => The standard
        [1] => Lorem Ipsum
        [2] => passage
        [3] => used since the 1500s
    )
4

1 回答 1

0

尝试

$excel->parser->loadFile(
    $fileName, 
    'CSV', 
    array(
        'delimiter' => ','
    )
);

强制使用逗号分隔符;

或修复库代码:

CSVParser 的第 78 行应为:

$args  = str_getcsv($line, $sep);

而不是

$args  = str_getcsv($sep, $line);
于 2013-08-23T12:11:57.667 回答