我有一个 PHP 站点和一个运行以更新该站点的数据库的 cron 作业。cron 读取由第三方上传的 CSV 文件。最近这个 cron 作业停止正常工作。经过一番调查,我发现问题出在 CSV 文件中。问题是 CSV 中的换行符已从标准的“\n”更改为旧的 ASCII“^M”,而 PHP 似乎没有将其识别为新行,因此没有将 CSV 视为多行,它将其视为一行信息。我只能在命令行文本应用程序 less 和 vim 中看到这种差异。有谁知道让 PHP 识别这些换行符的方法?
举个例子,不正确的 CSV 文件在 vim 中看起来与此类似:
Heading 1,Heading 2,Heading 3,^MInfo 1-1,Info 1-2,Info 1-3,^MInfo 2-1,Info 2-2,Info 2-3,^M^M
而旧的(正确的)版本在 vim 中显示如下:
Heading 1,Heading 2,Heading 3,
Info 1-1,Info 1-2,Info 1-3,
Info 2-1,Info 2-2.Info 2-3,