繁体   English   中英

在两列上写入CSV文件

[英]Write to a CSV file on two columns

我正在尝试创建CSV文件。 我已经做到了 我将下面的内容放入循环中,并在循环之外添加了第一行和最后一行。

$FileHandle = fopen('tech.csv', 'a+') or die("can't open file");
$stringa = $item." , ".$item2."\r\n";
fwrite($FileHandle, $stringa);
fclose($FileHandle);

但是,它在CSV文件中如下所示:

a
b

c
d

而不是我想要的方式:

a b
c d

基本上是两列而不是一列。

我究竟做错了什么?

我真的希望您不要在每次迭代中都打开和关闭文件,因为这会对文件系统造成很大的压力。 相反,您可以执行以下操作:

$csv = array();
foreach($myData as $row) {
    $csv[] = trim($row['item1']).','.trim($row['item2']);
}
file_put_contents('tech.csv', implode("\r\n", $csv), FILE_APPEND);

或者,您可以使用fputcsv函数:

$fp = fopen('tech.csv', 'a+');
foreach($myData as $row) {
    fputcsv($fp, array(trim($row['item1']), trim($row['item2']));
}    
fclose($fp);

您是否使用fgets()从文件/流中读取这些值? 然后,尾随的换行符是字符串的一部分。 使用trim()删除换行符。

您可能也对fputcsv()函数感兴趣

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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