[英]On saving CSV file into server directory, all values save only in first column
我正在尝试创建 csv 并将文件保存在服务器上,稍后将作为附件发送,以下是在服务器上创建和保存文件的代码,
$fileref=$records['referencenum']; //Dynamically generated
$filename = "$fileref.csv";
$outputfile = fopen('$filename', 'w');
$output = array('Record Type 1',
'Record Type 2',
'Record Type 3',
'Record Type 4',
'Record Type 5',
'Record Type 6'
);
file_put_contents("attachments/" . $filename, $output);
fclose($outputfile);
上面的代码可以在服务器上创建和保存文件,但问题是它将所有记录保存在 csv 文件的第一列中。
我做错了什么,解决问题的方法是什么?
问候
编辑和解决方案
$fileref=$records['referencenum']; //Dynamically generated
$filename = "$fileref.csv";
$output = fopen("attachments/" . $filename, "w"); //should have folder path
//Arrays should be load in same variable as fopen();
fputcsv($output, array(RecordType1,
RecordType2,
RecordType3,
RecordType4,
RecordType5,
RecordType6
)//No spaces and No comma
);
fputcsv($output);
fclose($output); //close the file
file_put_contents("attachments/" . $filename); //no need of this
不需要 foreach,因为只在单行中保存值。 它奏效了。
感谢Ankii Gangrade建议尝试 fputcsv();
试试 fputcsv()
<?php
$fileref=$records['referencenum']; //Dynamically generated
$filename = "$fileref.csv";
$list = array (
array('xyz', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
$fp = fopen('$filename', 'w');
foreach ($list as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.