繁体   English   中英

将 CSV 文件保存到服务器目录时,所有值仅保存在第一列中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM