我正在输出一个临时表到csv文件,但它只获得一行?
这是代码
$fileName = fopen('cmv_sailings.csv', 'w');
while ($i = mysql_fetch_assoc($export)) {
$ship = $i['code'];
$title = $i['title'];
$sailDate = $i['sailDate'];
$fromPort = $i['fromport'];
$nights = $i['nights'];
$grade = $i['type'];
$fare = $i['fare'];
$offer = $i['offerFare'];
$deposit = $i['deposit'];
$content = $ship.','.$title.','.$sailDate.','.$fromPort.','.$nights.','.$grade.','.$fare.','.$offer.','.$deposit.'\n';
fwrite($fileName, $content);
}
fclose($filename);
我现在还没有线索。我试图使用fputcsv,但我不能让它工作
答案 0 :(得分:3)
在您的代码中,在$content
变量分配结束时,将'\n'
更改为"\n"
。在php中,使用单引号时不会插入转义序列。使用双引号时会对它们进行插值。你得到一个字面反斜杠,然后是文字n
,而不是你正在寻找的换行符。
至于使用fputcsv()
,由于您的平台使用了错误的换行符,这可能对您不起作用。这发生在Mac上。如果这是您的问题,请尝试在文件解析代码之前启用auto_detect_line_endings
。您可以使用ini_set()
在运行时执行此操作:
ini_set('auto_detect_line_endings', '1');
答案 1 :(得分:0)
$content = $ship. ... .'\n';
您要在文件中附加反斜杠和n,而不是换行符。试试这个:
$content = $ship. ... ."\n";
答案 2 :(得分:0)
像这样使用,我在你的代码中看到的主要问题是使用单引号\ n这就是为什么新的行字符没有被添加到你的csv文件中而你得到的结果是一行
$content = $ship.','.$title.','.$sailDate.','.$fromPort.','.$nights.','.$grade.','.$fare.','.$offer.','.$deposit."\n";
fwrite($fileName, $content);
答案 3 :(得分:0)