2012-12-31 62 views
0

我會想以下形式動作的輸出保存在這樣的文本文件:如何正確格式化表單操作的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張貼的答案;) –

回答

2

如果您使用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的答案;) –

0

你想這樣做對你的應用程序調試的目的或實際存儲?如果 無論如何不應該是被用戶直接讀取爲文本文件,你用var_export功能可以節省您的POST陣列。

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

當您使用var_export,你在文件中得到的是一個有效的PHP代碼,所以如果你想以後你可以使用它作爲一個數組,並得到您的數據備份應用。

0

預定義常量PHP_EOL自PHP 4.3.10起可用於PHP4,自PHP 5.0.2起可用於PHP5。

它將爲任何操作系統添加正確的行結束。

fwrite($fs, PHP_EOL); 

如果您在一個操作系統中開發項目並將其部署到運行不同操作系統的服務器中,請使用此項。