如何正确格式化表单操作的PHP输出?

时间:2012-12-31 03:57:08

标签: php forms post text-files fwrite

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

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

我该怎么做才能解决它?

3 个答案:

答案 0 :(得分:2)

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

Windows中的

var1\nvar2\nvar3\n将呈现为

var1var2var3

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

var1
var2
var3

所以你必须使用\r\n代替\n这样的

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

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

答案 1 :(得分:0)

您是否希望在应用程序中进行调试或实际存储? 无论哪种方式,如果用户不应该直接将其作为文本文件读取,您可以使用var_export函数保存POST数组。

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

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

答案 2 :(得分:0)

自PHP 4.3.10开始,PHP4中提供了预定义的常量PHP_EOL,自PHP 5.0.2起,PHP5中提供了预定义的常量fwrite($fs, PHP_EOL);

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

{{1}}

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