2016-09-14 26 views
0

我有一個文本文件,每次訪問者訪問此頁時我正在對它執行print_r()。使用print_r()添加數據到文本

如何使用print_r()將數據添加到我的file.txt文本文件中?目前文本被覆蓋並且只存儲最後一個print_r()。

$output = print_r($data, true); 
file_put_contents('file.txt', $output); 
+3

fopen()在追加模式,然後fwrite()和fclose() –

回答

4

可以使用FILE_APPEND標誌:

file_put_contents('file.txt', $output, FILE_APPEND); 

FILE_APPEND如果文件名已經存在,將數據追加到 文件,而不是覆蓋它。

+0

怎麼可能做一個換行符?我嘗試過,但它只添加了br標籤'file_put_contents('file.txt',$ output。'
',FILE_APPEND);'? – Becky

+1

你可能想要嘗試一個換行符'\ n'或PHP結尾行常量''PHP_EOL' – j08691

1

您需要設置標誌FILE_APPEND以在文件末尾追加$output

file_put_contents('file.txt', $output, FILE_APPEND); 
0

方法1:

數據附加到該文件的底部()。

file_put_contents($fileDestination,print_r($data,true),FILE_APPEND) 

方法2:

追加數據到文件的頂部(開始)。

$fileDestination = "/path/to/your/file.txt"; 
$oldData = ""; 
/*** 
Edit some catching if file exists 
***/ 
if(file_exists($fileDestination)){ 
    $oldData = file_get_contents($fileDestination,false, null, 0); 
} 
$saveData = print_r($data,true).PHP_EOL.$oldData; 
unset($oldData); 
file_put_contents($fileDestination,$saveData); 

方法2說明:

從文件中獲取數據,該數據在它出現在文件中的順序一個變量中。然後你得到你的print_r數據,然後給它添加一個換行符,並添加舊的文件數據,以便新數據出現在文件的頂部,然後將整個塊寫回到文件中,覆蓋當前存在的內容。

PHP_EOL是PHP的行尾字符,用於換行符。