2016-04-30 68 views
1

我有這段代碼打開文件夾中的每個文件,將值減少5,然後覆蓋現有的內容。添加新行的字符串,我不明白爲什麼

<?php 
    foreach (glob("users/*.php") as $filename) {  
     $array = file($filename); 

     $wallet = $array[0]; 
     $time = $array[1]; 
     $status = $array[2]; 
     $steamid = $array[3]; 

    $process = fopen($filename, "w") or die("Unable to open file!"); 
     $time = $time - 5; 
     $newdata = $wallet . "\n" . $time . "\n" . $status . "\n" . $steamid; 
     fwrite($process, $newdata); 
    fclose($process); 
} 
?> 

之前,我執行腳本,被打開的文件是這樣的:

680 
310 
0 
74892748232 

腳本執行完畢後,文件看起來是這樣的:

680 

305 
0 

74892748232 

如果腳本再次執行,它會添加更多行,並且更多地破壞文件。

該文件的字符串在這裏創建:

$newdata = $wallet . "\n" . $time . "\n" . $status . "\n" . $steamid; 

爲什麼它添加$錢包和$狀態後一個空行,但不經過$時間?我怎樣才能避免這種情況,而是寫下:

$wallet 
$time 
$status 
$steamid 

感謝很多提前:)

+0

Depe發現你的操作系統如何對待新線路。嘗試使用'$錢包。 PHP_EOL。 $ time'。 –

+0

使用功能文件FILE_IGNORE_NEW_LINES 和 設置這兩個標記非常有用FILE_SKIP_EMPTY_LINES – splash58

回答