我用php创建csv文件。要将数据写入我的csv文件,我使用php函数“fputcsv”。
这是问题所在: 我可以用Excel正常打开创建的文件。但我不能将文件导入商店系统(在这种情况下是“shopware”)。它说的是“数据无法读取”。
现在有了线索:
如果我打开创建的文件并选择“另存为”并在类型中选择“CSV(逗号分隔)”,则可以将此文件导入商店。我读了一些关于我用来编码数据的php函数“mb_convert_encoding”,但它无法解决这个问题。
如果你能帮助我,我将非常高兴。
感谢。
答案 0 :(得分:0)
我认为您无法使用fputcsv设置编码。但是fputcsv会查看语言环境设置,您可以使用setlocale进行更改。
也许您可以将文件直接发送到用户浏览器,并使用标题函数更改contenttype和charset。
答案 1 :(得分:0)
如果不了解有关您系统的更多信息,则无法回答这个问题。很可能它与字符编码无关。错误的列数或列标题不正确可能是一个问题。
如果是字符编码问题,最好的选择是:
$new_str = mb_convert_encoding($str, 'Windows-1252', 'auto');
也用\ r \ n结束换行符,而不只是\ n。
如果这不起作用,您需要检查软件文档。
答案 2 :(得分:0)
感谢您的投入。 我用fwrite替换fputcsv解决了这个问题。然后我只需要将“\ r \ n”(感谢wmil)添加到行尾,生成的文件可以被shopware读取。
显然fputcsv函数使用\ n而不是\ r \ n作为EOL字符。