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


PHP Processing CSV file separated by semicolon

我有一个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, '"');,但没有帮助。

您的问题是,默认情况下fgetcsv使用,作为分隔符。如果将其更改为;,则不需要使用explode

function process_csv($file) {
    $file = fopen($file, "r");
    $data = array();
    while (!feof($file)) {
        $data[] = fgetcsv($file, null, ';');
    }
    fclose($file);
    return $data;
}