我需要在每次循环时开始一个新行并添加到生成的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中打开时,生成的所有内容都是一行。
提前致谢。
答案 0 :(得分:0)
应检测行结尾。来自putcsv doc:
注意:如果在Macintosh计算机上读取文件或由Macintosh计算机创建文件时,PHP无法正确识别行结尾,则启用auto_detect_line_endings运行时配置选项可能有助于解决问题。
希望这有帮助。
答案 1 :(得分:0)
在$txt = array($top_page[0]. ",".$top_page[1]);
中丢失引用的逗号:改为执行此操作:
$txt = array($top_page[0], $top_page[1]);
fputcsv
自动输入行结尾。您在示例中实际执行的操作是发送单个元素数组。