【发布时间】:2011-10-10 12:15:05
【问题描述】:
我有一个以下格式的数组 - 它本质上是一个预先格式化的 CSV 行数组 - 本示例中的键 0 和 1 有一个包含换行符的 CSV 值。
Array
(
[0] => 'foo,foo,foo,foo
bar,foo,a:1:{i:0;s:4:"blah";}'
[1] => 'bar,bar,bar,bar
foo,bar,a:1:{i:0;s:4:"blah";}'
[1] => 'bar,bar,bar,foo,bar,a:1:{i:0;s:4:"blah";}'
)
我接下来要做的是使用\r\n 作为胶水,生成 CSV 文件,然后将其写出来。问题是生成的文件不会将包含换行符的字段用双引号括起来,以便可以保留换行符(或者至少我假设它会保留)。
生成的 CSV 文件将上传到数据库或在 Excel 中编辑,并且需要在字段中保留换行符。
在分解为正确格式后使用 fputcsv 会生成一个 CSV,该 CSV 具有换行符并用双引号括起来,在记事本或类似工具中查看,但在 Excel 中打开时不会。
$parent_wholelines = array();
foreach ($output_array as $wholeline) {
$parent_wholelines[] = explode(',', $wholeline);
}
【问题讨论】:
-
首选
var_export。print_r不太擅长准确地向我们展示您的数据是什么。 -
@Tomalak-Geret'kal - 在这种情况下 var_export 输出相同的内容,加上每个键的一些引号。
-
是的;这些很有用。精度在我们的领域很重要。