PHP fgetcsv():分隔符必须是单个字符

时间:2017-11-23 18:11:42

标签: php csv

我有以下代码,用于读取带有CRLF的csv文件作为行结尾

if (($fp = fopen($path, "r")) !== FALSE) {
            while (($record = fgetcsv($fp, 1000, "\r\n")) !== FALSE) {
                if ($row == 0) {
                    $record[0] = $batchHeader;
                }
                $newCsvData[] = $record;
                $row++;
            }
        }

当我上传csv文件时,我收到以下错误:fgetcsv():分隔符必须是单个字符

以下是一个示例或我的csv:

enter image description here

感谢。

2 个答案:

答案 0 :(得分:5)

我猜它是"\r\n"作为你的分隔符。你试过fgetcsv($fp, 1000, "|")吗?

它应该自动检测行结尾。

PHP reference

答案 1 :(得分:2)

有问题的参数是分隔符(字段分隔符),而不是行分隔符。在您的情况下,|应该是您的分隔符。该函数将自行处理行结尾。

请阅读http://php.net/manual/en/function.fgetcsv.php

了解更多信息