Shopify的CSV解析

问题描述 投票:1回答:2

是)我有的:

用于解析用户CSV文件的laravel应用程序。文件中的数据包括一个带有HTML代码的字段。它由“。”封装。

有些行没有标记。我瞄准具有标签的行,并使用行号保存变量,以便稍后进行编辑。

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

我正在使用使用PHPExcel的http://maatwebsite.nl/laravel-excel

我的问题

  1. Shopify要求所有字段不要用双引号括起来;仅适用于HTML代码和标签字段。
  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,,,,,,,,

我试过了什么

  1. 将LaravelExcell机箱设置为无任何导致混乱的情况。只要HTML代码中有换行符(LF),解析器就会跳转到新行。
  2. 尝试使用file_get_contents和str_replace将\ r \ n替换为空,以便LaravelExcel不会像疯了一样跳转。没有成功,因为我需要HTML格式保持不变。
  3. 在进口时尝试使用Config::set('excel.csv.enclosure', '"');,在出口时使用Config::set('excel.csv.enclosure', '');。导出文件全部搞砸了。
php laravel csv phpexcel
2个回答
0
投票

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

但是,在导出文件时,我抛弃了PHPExcel类,而是使用fopen()和fwrite()将数组中的所有内容解析为Shopify / csv的格式。有很多preg_match和if语句,如果一个字段包含一个逗号,它用"括起来。

© www.soinside.com 2019 - 2024. All rights reserved.