Mit PHP einen Wert in eine TXT-Datei schreiben

Alice

Erfahrenes Mitglied
Hallo. :)

Mit folgendem PHP-Code öffne ich eine TXT-Datei, erhöhe den Wert um 1 und schließe die Datei wieder.

PHP:
$Dateiname = "./datei1.txt";
$fp = fopen($Dateiname, "r");
$user = fread($fp, filesize ($Dateiname));
$user = $user+1;
$fp = fopen($Dateiname, "w");
fwrite($fp, $user);
fclose($fp);

Meine Frage:
Ist es möglich zwei Dateien anzugeben und dass das Skript zwei Dateien öffnet, den Wert um 1 erhöht und wieder schliesst?

PHP:
$Dateiname = "./datei1.txt";
$Dateiname = "./datei2.txt";
$fp = fopen($Dateiname, "r");
$user = fread($fp, filesize ($Dateiname));
$user = $user+1;
$fp = fopen($Dateiname, "w");
fwrite($fp, $user);
fclose($fp);

Wie könnte man das umsetzen?

Vielen Dank im Vorraus. :)
 
Genauso wie dein erster Versuch, aber zwei mal. Soll heißen: Man kann zwar zwei oder mehrere Dateien gleichzeitig öffnen, und dann auch in den Dateien drin herum schreiben, aber nur, wenn man Überblick über seinen Code hat. Für einen Anfänger dürfte es nacheinander aber sinnvoller sein. Desweiteren braucht man die Datei nur einmal zu öffnen. Du tust es aber zwei mal. Du müsstest vor dem zweiten Öffnen die erste Öffnung erstmal wieder schließen, oder du öffnest die Datei in einem besonderen Modus und machst alles auf einen Rutsch:

PHP:
$Dateiname = "./datei1.txt";

// Oeffne Datei im Lese-/Schreib-Modus
$fp = fopen($Dateiname, "r+");

if($fp)
{
  //Lese alle Daten
  $user = fread($fp, filesize ($Dateiname));

  // Hier sollte evtl noch eine Prüfung statt finden, ansonsten wird Zaehler inkrementiert
  $user = $user+1;

  // Nun Datei leeren
  ftruncate($fp, 0);

  // Daten neu reinschreiben
  fwrite($fp, $user);

  // Daten auf Platte schreiben und Datei schließen
  fflush($fp);
  fclose($fp);  
}

Den gleichen Vorgang würde man dann auch anschließend für die zweite Datei durchführen.
 
Zuletzt bearbeitet:
Zurück