用换行符解析CSV

时间:2018-07-10 10:00:21

标签: php csv parsing

我需要解析一个csv,但是此csv格式不正确,在某些字段中,有新行(\ n)破坏了我的解析器。

有什么办法可以避免这种情况?目前,我正在这样解析:

$this->myId = 10

但是当str_getcsv找到if($file){ $full_path = DRUPAL_ROOT . '/' . file_stream_wrapper_get_instance_by_uri($file->uri)->getDirectoryPath() . '/' . file_uri_target($file->uri); $csvData = file_get_contents($full_path); if (!mb_detect_encoding($csvData, 'UTF-8')) $csvData = utf8_encode($csvData); //$lines = explode(",", $csvData); $lines = array_map("str_getcsv", file($full_path), array_fill(0, count(file($full_path)), ';')); dsm($csvData); foreach ($lines as $line){ dsm($line); } 时,他创建了新行,而我无法正确解析csv(我无法修改来自其他人的csv)。

也许有一种方法可以从字段中删除\n而不是从行尾删除?

在我的csv中有换行器的字段示例 Example of the field who have line breakers in my csv

1 个答案:

答案 0 :(得分:0)

似乎str_getcsv()本身无法使用。

看看str_getcsv函数的comments。有一些例子说明其他人已经完全解决了您的问题。