2016-04-30 16 views
1

Ich habe diesen Code, um jede Datei in einem Ordner zu öffnen, einen Wert um 5 zu verringern und überschreiben dann den vorhandenen Inhalt.String Hinzufügen neuer Zeilen und ich verstehe nicht warum

<?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); 
} 
?> 

Bevor ich das Skript ausführen, werden die Dateien, die geöffnet wird wie folgt aussehen:

680 
310 
0 
74892748232 

Nachdem das Skript ausgeführt wurde, wird die Datei wie folgt aussieht:

680 

305 
0 

74892748232 

Wenn die Skript wird erneut ausgeführt, es fügt mehr Zeilen hinzu und bricht nur die Dateien noch mehr.

Die Zeichenfolge für die Datei werden hier erstellt:

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

Warum eine leere Zeile nach $ Portemonnaie und $ Status hat es hinzufügen, aber nicht nach $ Zeit? Wie kann ich dies vermeiden und stattdessen aufzuschreiben:

$wallet 
$time 
$status 
$steamid 

Vielen Dank im Voraus :)

+0

Depe Sie erfahren, wie Ihr Betriebssystem neue Zeilen behandelt. Versuchen Sie es mit '$ wallet. PHP_EOL. $ Zeit 'stattdessen. –

+0

ist es sehr nützlich, diese 2 Flags mit der Funktionsdatei - FILE_IGNORE_NEW_LINES und FILE_SKIP_EMPTY_LINES zu setzen – splash58

Antwort

Verwandte Themen