tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von saftmeister
ERLEDIGT
JA
ANTWORTEN
1
ZUGRIFFE
166
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Hallo.

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

    PHP-Code:
    $Dateiname "./datei1.txt";
    $fp fopen($Dateiname"r");
    $user fread($fpfilesize ($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-Code:
    $Dateiname "./datei1.txt";
    $Dateiname "./datei2.txt";
    $fp fopen($Dateiname"r");
    $user fread($fpfilesize ($Dateiname));
    $user $user+1;
    $fp fopen($Dateiname"w");
    fwrite($fp$user);
    fclose($fp); 
    Wie könnte man das umsetzen?

    Vielen Dank im Vorraus.
     

  2. #2
    Avatar von saftmeister
    saftmeister saftmeister ist offline Der Saft sei mit dir
    tutorials.de Premium-User
    Registriert seit
    May 2006
    Ort
    There is no place like 127.0.0.1
    Beiträge
    3.520
    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:

    Code php:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    $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.
    Geändert von saftmeister (29.12.10 um 20:36 Uhr) Grund: Besserer Code
    Alice bedankt sich. 
    Grüße
    --
    Qualität des Codes wird in WTF's/Min gemessen: Je mehr, desto schlechter der Code ;-)

Ähnliche Themen

  1. AW: [VB.NET] Einen XML Wert in TextBox schreiben
    Von binderj1 im Forum .NET Datenverwaltung
    Antworten: 1
    Letzter Beitrag: 16.12.10, 20:35
  2. [Matlab] Überprüfen ob eine Variable einen Wert enthält
    Von venom im Forum Sonstige Sprachen
    Antworten: 6
    Letzter Beitrag: 18.03.08, 11:22
  3. Antworten: 7
    Letzter Beitrag: 30.05.05, 08:55
  4. Antworten: 2
    Letzter Beitrag: 15.03.05, 14:00
  5. Antworten: 11
    Letzter Beitrag: 13.10.04, 15:04