在foreach循环中为CSV开始一个换行符?
问题描述:
我需要在每次循环时添加一行,并添加到正在生成的CSV文档中。在foreach循环中为CSV开始一个换行符?
代码:
if(is_array($results_top_pages->getRows())){
$name = rand();
$myfile = fopen("bin/".$name.".csv", "w") or die("Unable to open file!");
foreach($results_top_pages->getRows() as $top_page){
$txt = array($top_page[0]. ",".$top_page[1]);
fputcsv($myfile, $txt);
}
fclose($myfile);
}
我曾尝试以下:
- array($top_page[0]. ",".$top_page[1]. "\n");
- array($top_page[0]. ",".$top_page[1]. "\r\n");
- array($top_page[0]. ",".$top_page[1]. "<br>");
以及与''
,而不是""
仍然没有运气上述所有。在Excel中打开时,生成的所有内容都是一行。
在此先感谢。
答
它应该检测行结束。从putcsv doc:
注:如果在读文件打开或创建时由Macintosh计算机PHP没有正确认识到行结尾,使auto_detect_line_endings运行时配置选项可能有助于解决这个问题。
希望这会有所帮助。
答
失去$txt = array($top_page[0]. ",".$top_page[1]);
引述逗号而是执行此操作:
$txt = array($top_page[0], $top_page[1]);
fputcsv
自动将行尾。在你的例子中你实际做的是发送一个元素数组。
http://stackoverflow.com/questions/16520282/csv-new-line-character也许这? – briosheje 2015-04-01 08:48:20
先放逗号,然后放\ r \ n – 2015-04-01 08:49:27