2

我在网站上有一个表格,一旦完成,就会将值保存在数组中。我希望将数组的内容放入一个 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 转储,并在每次提交时覆盖。我不知道如何格式化它来实现我所需要的。非常感谢任何帮助。

4

3 回答 3

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

PS:不要在循环内部使用 fopen ,而是在外部使用 fopen ,然后在内部使用 fwrite 。fclose 在循环之后进行。

编辑:我误解了它应该是

$info = implode("-",$clean);
file_put_contents("userinfo.txt", "\n".$info,FILE_APPEND);
于 2012-12-02T12:40:07.753 回答
2

您基本上是在编写一个 CSV(逗号分隔值)文件。PHP 有正确的内置函数来完成这项工作:(fputcsv作为一个额外的好处,它还可以正确处理包含分隔符本身的值的转义);

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

用于fgetcsv稍后检索数据。

于 2012-12-02T12:50:59.720 回答
1

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

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

$file = fopen("userinfo.txt", "a");
于 2012-12-02T12:33:30.367 回答