在 PHP 中写入 CSV 时强制换行

发布于 2024-11-25 05:24:20 字数 348 浏览 2 评论 0原文

$out_text = "\r\n";
$out_text_body = implode("\r\n", $output_array);
$out_text = $out_text . $out_text_body;
fwrite($han, $out_text);

上面的代码成功地将一堆存储在数组中的 CSV 行添加到由换行符分隔的文件中。正在写入的文件已包含一堆 CSV 行。

问题是,尽管在要写入的文本前面添加了额外的“\r\n”,但在新写入的 CSV 中,新块始终与旧块在同一行开始。内爆变量工作正常。

被这个问题难住了,但看了这么久,我看不出问题所在,希望这很简单。

$out_text = "\r\n";
$out_text_body = implode("\r\n", $output_array);
$out_text = $out_text . $out_text_body;
fwrite($han, $out_text);

Code above successfully adds a bunch of CSV lines which are stored in an array to a file separated by new line characters. The file being written to contains a bunch of CSV lines already.

The problem is that, despite pre-pending the the text to be written with an extra "\r\n", in the newly written CSV, the new block always starts on the same line as the old one. The implodes variable works fine.

Stumped on this, but been looking at it so long I cannot see the problem which is hopefully simple.

Dan

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

少女净妖师 2024-12-02 05:24:20

你可以先写一行吗:

fwrite($han, PHP_EOL);
fwrite($han, $out_text);

顺便说一句,虽然从技术上来说这并不重要,但我更有可能这样做:

fwrite($han, PHP_EOL);
foreach( $out_array as $out_text )
{
    fwrite($han, $out_text);
}

我通常保留将大块文本(包括换行符)写入 file_put_contents。从技术上讲,这并不重要,而且上面的内容更符合 PHP 4(尽管我怀疑我们不再关心这一点),但它确实有更标准的“感觉”。

Can you just start by writing a line:

fwrite($han, PHP_EOL);
fwrite($han, $out_text);

As an asside, while technically it does not matter, I would be much more likely to do this:

fwrite($han, PHP_EOL);
foreach( $out_array as $out_text )
{
    fwrite($han, $out_text);
}

I generally reserve writing large blocks of text (which include newlines) to file_put_contents. Technically it does not matter, and the above is more PHP 4 compliant (though I doubt we care about that anymore), but it does have a more standard "feel" to it.

二智少女猫性小仙女 2024-12-02 05:24:20

为什么不使用 fputcsv() 函数呢?

它应该为你处理所有这些事情。

Why not use the fputcsv() function instead?

It should deal with all these things for you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文