Einzelne Zeilen einer .txt Datei ändern

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

  • Einzelne Zeilen einer .txt Datei ändern

    Hallo,
    Ich weiß ,das meine Frage eine wenig blöde ist aber ich komme einfach nicht drauf.

    In einer txt Datei steht jetzt :

    (Zeile0) Hallo
    (Zeile1) meine
    (Zeile2) Freunde
    (Zeile3) wie

    Jetzt möchte ich das ,das Wort Freunde aus der 2 Zeile überschrieben wird.
    Die Zeile 2 Soll jetzt komplett geleert werden und durch ein anderes Wort ersetzt werden.
    Wenn ich das so mache:
    $handle = fopen( 'Begrüßung.txt', 'r+');

    if (!fwrite($handle, "NeuesWort \n")) {
    print "Kann in die Datei nicht schreiben";
    exit;
    }
    fclose($handle);

    wird immer am Anfang geschrieben oder brauche ich ein anderen Befehl für sowas ?
    Ich hoffe meine Frage ist klar geworden.
    mfg Chris
    Achtung ich bin eine wandelne Frage

  • #2
    http://php.net/file

    Kommentar


    • #3
      http://faq-php.de/q/q-datei-einfuegen.html
      Für dieses Problem gibt es keine elegante oder effiziente Lösung. Die Ursache liegt darin, wie Unix und Windows die unterliegenden Dateien handhaben, nämlich als unstrukturierte Byteströme. Für diese Byteströme gibt es keine Indices und auch keine Methoden, mit denen man effizient beliebige Teile der Datei löschen oder in die Datei einfügen könnte.

      [...]

      Um in einer Datei eine Zeile einzufügen oder zu löschen, muss man die Datei öffnen und zeilenweise durchlesen und in eine zweite Datei schreiben. Erreicht man die gewünschte Position, muss man dort eine Zeile einfügen oder löschen. Nach Abschluß der Operation ist die Originaldatei zu löschen und die neue Datei umzubenennen. Dabei ist zu beachten, dass in einer Webumgebung ohne weiteres mehrere Benutzer zugleich eine solche Operation für dieselbe Datei anfordern können. Man muss also auch durch Locking dafür Sorge tragen, dass sich diese Benutzer nicht in die Quere kommen. [...]
      mit dem kursiv-geschriebenen bin ich nicht einverstanden und kann dir deren codeschnippsel auch nicht empfehlen. die datei lässt sich mit file() bequem in ein array einlesen. die array-funktionen bieten viele möglichkeiten, es zu bearbeiten. anschließend würd ich das array wie gewohnt in die gleiche datei schreiben (und somit den alten inhalt überschreiben).

      Kommentar


      • #4
        Vor inkonsistenten Zugriffen kann man sich halbwegs mit flock() schützen.

        Kommentar

        Lädt...
        X