2013-10-23 44 views
2

我創建隨機數的文件值之間打破:使用「文件」,並根據然後「的foreach」結果

<?php 
$file = 'test.txt'; 
for ($i=1; $i<=100; $i++) { 
$rand_num = rand(10000,20000); 
file_put_contents($file, $rand_num . PHP_EOL, FILE_APPEND); 
} 
?> 

然後我用「文件」,從文件中讀取數據和處理每行(這裏沒有包含在代碼中)。當我再次把中的數據文件 - 存在$值後AA換行符:

<?php 
$file = 'test.txt'; 
$fp = fopen($file, 'rb'); 
$content = file($file); 
file_put_contents($file, ''); 
foreach ($content as $value){ 
file_put_contents($file, $value . PHP_EOL, FILE_APPEND); 
} 
?> 

而不是給我:

190191 
920191 
829281 

它給我:

190191 

920191 

829281 

如果我這樣做: $ processed_line =「$ value is good」;

它會顯示:

190191 
value is good 
920191 
value is good 
829281 
value is good 

而不是把字符串旁邊$值 - 190191是好的。

有什麼想法嗎?感覺像我想念一些微小而愚蠢的東西。 謝謝。

回答

1

使用$value = trim($value, "\r\n");作爲一線在循環

問題是因爲在值結束時,你已經有\n符號

1

默認情況下,文本文件中的行是獲取與仍連接的任何新行;在你的foreach裏面追加另一個,因此空行。

可以使用FILE_IGNORE_NEW_LINES標誌file()從每個數組元素離開關新行:

$content = file($file, FILE_IGNORE_NEW_LINES); 
相關問題