将数组写入txt文件

时间:2012-12-02 12:31:53

标签: php

我在网站上有一个表单,一旦完成就会保存数组中的值。我希望将数组的内容放入一个txt文件中,每个提交在一个新行上,值由' - '分隔:

info-info-info-info
info-info-info-info

我尝试过使用:

foreach ($clean as $info) {
    $file = fopen("userinfo.txt", "w");
    fwrite($file, $info);
    fclose($file);
}

这只会将数组的最后一部分放在文本文件中,并在每次提交时覆盖该文件。

使用:

$results = var_export($clean, true); 
file_put_contents('userinfo.txt', $results);

将所有信息正确写入文件,但存储为var转储,并覆盖每个提交。我不知道如何格式化它以实现我的需要。非常感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

$info = implode("\n",$clean);
file_put_contents("userinfo.txt", $info);

PS:不要在循环内部使用fopen,而是在外部使用fwrite。 fclose追求循环。

编辑:我误解了一下 它应该是

$info = implode("-",$clean);
file_put_contents("userinfo.txt", "\n".$info,FILE_APPEND);

答案 1 :(得分:1)

更改(从只写模式到追加模式)

$file = fopen("userinfo.txt", "w");

$file = fopen("userinfo.txt", "a");

答案 2 :(得分:1)

您基本上是在编写CSV(逗号分隔值)文件。 PHP具有正确的功能来完成内置工作:fputcsv(作为额外的奖励,它还将正确处理包含分隔符的值的转义);

if($h = fopen('./path/to/file', 'a')) {
  fputcsv($h, $clean, '-');
  fclose($h);
}

使用fgetcsv稍后检索数据。

相关问题