0

我想将以下表单操作的输出保存在这样的文本文件中:

var1
var2
var3

示例表单操作:

<form action="myform.php" method="post">

<input type="hidden" name="var1" value="var1">
<input type="hidden" name="var2" value="var2">
<input type="hidden" name="var3" value="var3">

<input type="submit" name="formSubmit" value="Submit">
</form>

示例 myform.php

<?php

  $fs = fopen("mydata.txt","w");
  fwrite($fs,$_POST['var1']);
  fwrite($fs, "\n");
  fwrite($fs,$_POST['var2']);
  fwrite($fs, "\n");
  fwrite($fs,$_POST['var3']);
  fwrite($fs, "\n");
  fclose($fs);


?>

但是,输出是:

var1var2var3

我能做些什么来解决它?

4

3 回答 3

2

如果您使用的是 windows,您将不会在新行中看到这些变量。这是因为 Windows\r\n用作行终止符。

var1\nvar2\nvar3\n在 Windows 中将呈现为

var1var2var3

但在 Linux 或 Unix(\n行终止)中,它将呈现为

var1
var2
var3

所以你必须使用\r\n而不是\n像这样

fwrite($fs, "\r\n");

这将在任何操作系统上呈现新行中的值。

于 2012-12-31T04:22:17.333 回答
0

您是为了调试目的还是为了在应用程序中实际存储而这样做?无论哪种方式,如果用户不应该直接将其作为文本文件读取,则可以使用 var_export 函数保存 POST 数组。

<?php
file_put_contents("C:/debug.txt", var_export($_POST, true));
?>

当你使用 var_export 时,你在文件中得到的是一个有效的 PHP 代码,所以如果你以后想要,你可以将它用作一个数组并将你的数据返回到应用程序中。

于 2012-12-31T05:02:23.800 回答
0

PHP_EOL自 PHP 4.3.10 和 PHP5 自 PHP 5.0.2 起,预定义常量在 PHP4 中可用。

它将为任何操作系统添加正确的行尾。

fwrite($fs, PHP_EOL);

如果您在一个操作系统中开发项目并将其部署在运行不同操作系统的服务器中,请使用此选项。

于 2012-12-31T05:31:56.383 回答