Php 将字符串数组写入由新行字符分隔的文本文件

Php 将字符串数组写入由新行字符分隔的文本文件,php,html,Php,Html,我有一个PHP页面,它在文本区域接受用户的输入。多个字符串被接受为来自用户的输入&将包含'\n',我正在将其扫描为: $data = explode("\n", $_GET['TxtareaInput']); 每个字符串都应以新行字符分隔移到文本文件中。这是我现在使用的代码,它用“^M”字符分隔每个字符串: foreach($data as $value){ fwrite($ourFileHandle, $value); } 还有什么方法可以让每个字符串后跟回车符吗?您只需使用“内爆

我有一个PHP页面,它在文本区域接受用户的输入。多个字符串被接受为来自用户的输入&将包含'\n',我正在将其扫描为:

$data = explode("\n", $_GET['TxtareaInput']);
每个字符串都应以新行字符分隔移到文本文件中。这是我现在使用的代码,它用“^M”字符分隔每个字符串:

foreach($data as $value){
    fwrite($ourFileHandle, $value);
}

还有什么方法可以让每个字符串后跟回车符吗?

您只需使用“内爆”将其写回即可:

file_put_contents('file.csv', implode(PHP_EOL, $data));
试试这个:

$data = explode("\n", $_GET['TxtareaInput']);
foreach($data as $value){
    fwrite($ourFileHandle, $value.PHP_EOL);
}

如果要添加新行,为什么要先删除它们

$data = explode("\n", $_GET['TxtareaInput']);
只保留这一行:

fwrite($ourFileHandle, $data);
它会在收到数据时将数据写入文件

如果要在写入文件之前用回车替换所有新行,请使用以下代码:

    fwrite($ourFileHandle, str_replace("\n", "\r", $data));

^M
。如何使用sed扫描它?
\r
应该是正确的转义序列。@nickb如何在注释中突出显示代码样式?@ryanbwork wrap code in backquotes`这将不会在windows
(\r\n)
和*nix
(\n)
@Raidenace:OP询问“是否有任何方法可以让每个字符串后跟一个回车符?”。我的代码正是这样做的。这行吗?
fwrite($ourFileHandle,$data)
fwrite的第二个参数可以是数组吗?我想它一定是一个字符串,explode给出了一个数组。不,你不会在文件中看到
^M
。你需要看到它吗?^M仍然出现在文件中。你知道为什么会看到它吗?你能提供一些有关所涉及的env/ide的信息吗?你在哪个操作系统中运行这个/生成文件?以及您使用哪个编辑器查看显示^M的文件?我使用的是red hat linux和vim编辑器。我没有使用任何用于PHP和HTML的IDE。vi编辑器显示特殊字符,如
回车(^M)
链接中断($)
在编辑器中。为了隐藏显示此信息的编辑器,请在编辑器中键入以下vim命令,然后按enter
:set nolist
。这将禁止显示这些特殊字符。要再次查看它们,只需执行
:set list
,这可以在vim中看到,因为它是一个强大的编辑器,因此提供此类功能。这不会影响您文件中的内容。优雅…非常优雅。谢谢。