【问题标题】:How to use line feeds in CSV file?如何在 CSV 文件中使用换行符?
【发布时间】:2011-09-12 19:26:30
【问题描述】:

我有一个 Excel 文件,我将其转换为 CSV,以便可以在 PHP 中对其进行解析。但是,由于某些原因,excel 中的单元格只有回车符 (\r) 而没有换行符 (\n)。我需要 csv 中的换行符,否则 PHP 会在一行中解析所有内容,这是不应该的。

有没有办法在 excel/csv 文件中添加换行符?

谢谢!

编辑:好像我将文件导出为错误的 csv — 我没有使用 Windows 逗号分隔。谢谢你们的答案。

【问题讨论】:

  • 在解析之前将文件/内容中的所有\r替换为\n怎么样?
  • 不应该这样。我只是使用 Excel 导出 CSV 文件,它的行由换行符分隔。
  • 如何将 Excel 文件转换为 CSV?

标签: php excel csv


【解决方案1】:

在读取 CSV 文件之前,请执行以下操作:

ini_set('auto_detect_line_endings', true);

然后在读取文件后立即将其设置为false

来自manual

这使 PHP 可以与 Macintosh 系统互操作,但默认 关闭,因为检测时性能损失很小 第一行的 EOL 约定,也因为人们使用 在 Unix 系统下,作为项目分隔符的回车符会 体验不向后兼容的行为。

【讨论】:

    【解决方案2】:

    有很多方法可以处理它。 PHP 中一个简单的方法是在处理之前将\r 替换为\n

    // Load the whole data file as a string
    $data = file_get_contents("yourcsv.csv");
    $data = str_replace("\r","\n", $data);
    
    // use str_getcsv() in PHP 5.3+ to parse it to an array
    $csv_array = str_getcsv($data);
    

    【讨论】:

      猜你喜欢
      • 2010-11-13
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多