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

问题描述:

我会想以下形式动作的输出保存在这样的文本文件:如何正确格式化表单操作的PHP输出?

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 

我能做些什么来解决它?

+2

你使用的是Windows吗?那么试试'\ r \ n'。 –

+0

工程就像一个魅力。谢谢! –

+0

@ shiplu.mokadd.im张贴的答案;) –

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

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

var1var2var3 

但在Linux或Unix(\n线终端),它会呈现为

var1 
var2 
var3 

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

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

这将在任何操作系统上以新行显示值。

+0

我+1的答案;) –

你想这样做对你的应用程序调试的目的或实际存储?如果 无论如何不应该是被用户直接读取为文本文件,你用var_export功能可以节省您的POST阵列。

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

当您使用var_export,你在文件中得到的是一个有效的PHP代码,所以如果你想以后你可以使用它作为一个数组,并得到您的数据备份应用。

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

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

fwrite($fs, PHP_EOL); 

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