Vorhandene einträge ersetzen bei datei

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Vorhandene einträge ersetzen bei datei

    Hallo

    Ich komme leider nicht weiter.
    Ich habe bis jetzt diesen code erstellt das mir eine test.dat einrichtet und dan zeilenweise z.b.

    TESTNAME##trn##152321

    schreibt.

    Nun möchte ich aber das er fals schon eine Zeile mit TESTNAME vorhanden ist dies ersätzt durch die neue werte.

    PHP-Code:
    <?php
    $userliste 
    "test.dat";
    if (
    file_exists("$userliste"))
    {
    $nickname "TESTNAME";
    $zeit date(H)."".date(i)."".date(s);
    $fpread fopen("$userliste","a+");
    $inhalt "$nickname##trn##$zeit";
    fwrite($fpread$inhalt ."\n");
    echo 
    "$nickname##trn##$zeit";
    }
    else
    {
    $nickname "TESTNAME";
    $zeit date(H)."".date(i)."".date(s);
    $fpread fopen("$userliste","a+");
    $inhalt "$nickname##trn##$zeit";
    fwrite($fpread$inhalt ."\n");
    echo 
    "$nickname##trn##$zeit";
    }
    ?>
    Kann mir bitte weiterhelfen?
    Er soll mir den Eintrag
    TESTNAME##trn##152321
    durch
    TESTNAME##trn##152322
    ersetzen.

    ADONIS
    Zuletzt geändert von Adonis; 18.06.2006, 15:29.

  • #2
    Datei auslesen (in array),
    Zeilen zeilenweise mit string-funktionen (http://de.php.net/manual/de/ref.strings.php) vergleichen
    -> ggf. durch neue zeile ersetzen.
    array wieder in datei speichern.

    Kommentar


    • #3
      Re: Vorhandene einträge ersetzen bei datei

      PHP-Code:
      <?php
      $userliste 
      'test.dat';
      $nick 'TESTNAME';
      $zeit date('His');

      // ganze Datei in Array lesen 
      // (neues Array, wenn Datei nicht exitistiert)
      $f file_exists($userliste) ? file($userliste) : array();
      $done false;


      // jede Zeile einzeln anschauen
      foreach ($f as $no => $line) {
          
      // wenn Zeile mit $nick## beginnt
          
      if (strpos($line$nick.'##') === 0) {
              echo 
      $nick.' ist schon drin';
              
      // diese Zeile verändern
              
      $f[$no] = "$nick##trn##$zeit\n";
              
      // merken, dass wir was gemacht haben
              
      $done true;
              
      // verbleibende Zeilen nicht mehr untersuchen
              
      break;
          }
      }

      // wenn noch nichts passiert ist
      if (!$done) {
          
      // neue Zeile ans Ende hängen
          
      $f[] = "$nick##trn##$zeit\n";
      }

      // ganzes Array wieder in Datei zurückschreiben
      file_put_contents($userlisteimplode(''$f));

      ?>

      Kommentar


      • #4
        Wow big thx..

        Aber leider giebt er mir eine Fehlermeldung

        Fatal error: Call to undefined function: file_put_contents() in /home/www/test/html/test/submit.php on line 33

        Kommentar


        • #5
          ja mai, dann gehste mal selbstständig ins Manual unter file_put_contents nachgucken und achtest mal bitte auf die Versionsnummer!

          Kommentar

          Lädt...
          X