我正在尝试将一些数据导出到csv文件中,我已经将数据导入该文件,这是我的代码:
*如果代码不好,请原谅我,我从来没有做过这样的事情,这是我能让它工作的唯一方法。
/* CSV Export - Create Row */
$csv_row_content .= $userdata->id.',';
$csv_row_content .= $userdata->firstname.' '.$userdata->lastname;
$csv_row_content .= ','.$split_date[2].'-'.$split_date[1].'-'.$split_date[0].',';
$csv_row_content .= $sale->name;
if($sale->optionlabel):
$csv_row_content .= ' ('.$sale->optionlabel.')';
endif;
$csv_row_content .= ',';
$csv_row_content .= $sale->status.',';
$csv_row_content .= number_format($sale->unitprice, 2, '.', '');
$csv_row_content .= "\r\n";
$data_array[] = $csv_row_content;
$csv_file = fopen('../wp-content/plugins/data-export/export_doc.csv', 'w');
foreach ($data_array as $single_line)
{
fputcsv($csv_file,split(',',$single_line));
}
fclose($csv_file);
/* Clear Array */
unset($data_array);
$data_array = array();它是工作的,除了我在某些项目上的引号有问题
303,"User Name",12-02-2013,"College Sweater (Black)",,"20.00
207","User Name",30-01-2013,"College Sweater (Black)",,"20.00
"所以我不确定第一个和最后一个项目是怎么回事,一个引号有时会出现,另一些则不会。请注意id为207的行上的奇怪引号&两行的最后一个值。另外,在第三行有一个新的begin行,只有一个引号。
另外,在其他一些项目上,该函数将项目的名称拆分为两个项目。例如:
207","User Name",30-01-2013,"College ","Sweater (Black)",,"22.73所以很明显我在这里的某个地方走错了路,如果有人能帮助我的话,我真的很想学习这种事情应该如何做的正确方法,查看了很多php.net文档,但很多时候我发现这种资源令人难以置信地不堪重负,这就是一个这样的场合。
如果有人能为我指明正确的方向,我将不胜感激。我更愿意理解这一点,而不仅仅是复制和粘贴解决方案。
谢谢,弗兰克
发布于 2013-05-06 01:07:57
您将手动创建CSV字符串并将其拆分,然后使用fputcsv将其重新组合在一起。试着这样做:
$row = array(
$userdata->id,
$userdata->firstname . ' ' . $userdata->lastname,
$split_date[2] . '-' . $split_date[1] . '-' . $split_date[0],
$sale->name . ($sale->optionlabel ? $sale->optionlabel : ''),
$sale->status,
number_format($sale->unitprice, 2, '.', '')
);
$data[] = $row;
$csv_file = fopen('../wp-content/plugins/data-export/export_doc.csv', 'w');
foreach ($data as $line) {
fputcsv($csv_file, $line);
}
fclose($csv_file);这将创建一个包含所有字段的数组,该数组可以传递给fputcsv,它负责封闭和分隔字段以及行结束。
https://stackoverflow.com/questions/16386860
复制相似问题