PHP处理由分号分隔的CSV文件

时间:2015-04-07 08:38:56

标签: php

我是一个具有以下结构的csv文件:

a; b; c,c c; d

当我尝试处理它时,它表示偏移量2和3未定义。花了一些时间才意识到它是由,引起的,并且不知道如何解决这个问题。如果删除,,一切运行正常。

这是我的处理功能:

function process_csv($file) {

    $file = fopen($file, "r");
    $data = array();

    while (!feof($file)) {
        $csvdata = fgetcsv($file);

        $data[] = explode(';', $csvdata[0]);
    }

    fclose($file);
    return $data;
}

fgetcsv($file);视为fgetcsv($file, '"');,但没有帮助。

1 个答案:

答案 0 :(得分:11)

您的问题是,fgetcsv默认使用,作为分隔符。您需要将其更改为;。那么你将不再需要explode:)

function process_csv($file) {

    $file = fopen($file, "r");
    $data = array();

    while (!feof($file)) {
        $data[] = fgetcsv($file,null,';');
    }

    fclose($file);
    return $data;
}