【问题标题】:CSV File as ASCII and with CRLFCSV 文件为 ASCII 并带有 CRLF
【发布时间】:2011-08-23 07:16:17
【问题描述】:

我的 csv 文件中的每一行都需要一个 CRLF (char10,char(13)。我发现的样本不能正常工作。我需要 ASCII 格式的文件而不是 UTF8。我怎样才能将它保存为 ASCII?

我的代码:

$fp = fopen('import.csv', 'w');

while ($daten = pg_fetch_assoc($query))
{
    fputcsv($fp,$daten,chr(9));
}

【问题讨论】:

  • 你在windows上吗?如果是这样,也许将“t”模式添加到 fopen 会有所帮助。请参阅模式表php.net/manual/en/function.fopen.php 后面的注释,以讨论不同系统上的行尾。

标签: php csv ascii


【解决方案1】:

使用 fputcsv 时,您不需要在每行的末尾手动放置 CRLF

但是,如果您确实想要在行之间添加一个“额外”行,您可以试试这个:

    $fp = fopen('import.csv', 'w');  
    while ($daten = pg_fetch_assoc($query)) 
    {     
    fputcsv($fp,$daten,chr(9)); 
    fputs($fp,'\n');
    } 
    fclose($fp);

注意这是linux ascii,如果你想要windows ascii,它是'\r\n'

【讨论】:

  • 我需要在每一行的末尾添加一个“\r\n”。我在 linux 系统上创建 csv,所以我使用 fputcsv 的每一行只有一个“\n”?
  • 是的,unix ascii 系统只放入 \n,只有 windows 系统才需要 \r\n - 结果,如果您按照 $file = file_get_contents('导入.csv'); $file =preg_replace("~(?
猜你喜欢
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2016-03-16
  • 2021-07-15
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
  • 1970-01-01
相关资源
最近更新 更多