CSV parsing for Shopify


CSV parsing for Shopify

我有什么:

解析用户CSV文件的一个小型应用程序。文件中的数据包括一个字段,其中包含HTML代码。它被"。

"封装。

有些行没有标签。我的目标是有标记的行,并保存一个带有行号的变量,以便以后可以编辑它。

Item 837, Description, "<h1>HTML code</h1><br/><h2>eh<h2>", Some Other Data, "Tag 1"

我使用http://maatwebsite.nl/laravel-excel使用phpexcel

我的问题

  1. Shopify要求所有字段不能用双引号括起来;

  2. 当我解析数组时,在HTML代码中找到的每一个'r'n 'n处,它将跳转到一个新的数组条目。

我想要的

解析CSV数据,得到像

这样的数组
[id] => 12,
[tags] => "tag 1, tag 2",
[body] => "<html></html>",
[variable] => description text,

导出时,我希望数据在记事本

中显示如下所示

12, "tag 1, tag 2", "<html></html>", description text,,,,,,,,

What I have try

  1. 将laravelexcel enclosure设置为nothing,这会导致混乱。当HTML代码中出现换行符(LF)时,解析器将跳转到新行。

  2. 尝试使用file_get_contents和str_replace将'r'n替换为空,以便LaravelExcel不会像疯了一样跳来跳去。没有工作,因为我需要的HTML格式保持不变。

  3. 尝试使用Config::set('excel.csv.enclosure', '"');进口,Config::set('excel.csv.enclosure', '');出口。导出文件全乱了

我决定继续使用PHPExcel来解析CSV数据,因为它使用行框"和分隔符,提供了一个可组织的数组。

然而,在导出文件时,我放弃了PHPExcel类,而是使用fopen()和fwrite()将数组中的所有内容解析为Shopify/csv格式。with lots of preg_match &if语句,例如如果字段包含逗号,则用" 将其括起来。