Tom: Zeile in Textdatei löschen - aber wie

Beitrag lesen

Hello,

Erst eine Frage: Hat der Unterstrich vor data eine tiefere Bedeutung? Oder machst du das halt nur einfach so? $_data

Ich kennzeichne so die Arrays, angelehnt an $_POST ...
Normale Skalare heißen dann eben $skalar
PHP kennt ja intern nur diese zwei Typen und dann natürlich Funktionen, Klassen Konstanten etc.

Ich hab jetzt eigentlich alles laut deinen Anweisungen gemacht:

$fp = fopen("aktuell.txt","a+");

flock($fp,LOCK_EX);
  fseek($fp,0,SEEK_SET);

$string_packed = fread($fp,filesize("aktuell.txt"));
  $_data = unserialize($string_packed);

$_data[] = $_daten;

$string_packed_neu = serialize($_data);
  fseek($fp,0,SEEK_SET);
  fwrite($fp,$string_packed_neu,strlen($string_packed_neu));

$test = ftruncate($fp,strlen($string_packed_neu));
  fclose($fp);

Nachdem ich nun aber zweimal abgeschickt habe steht in der Textdatei:

a:1:{i:0;a:4:{s:5:"autor";s:1:"1";s:5:"thema";s:1:"1";s:5:"datum";s:8:"15.06.04";s:4:"news";s:1:"1";}}a:2:{i:0;a:4:{s:5:"autor";s:1:"1";s:5:"thema";s:1:"1";s:5:"datum";s:8:"15.06.04";s:4:"news";s:1:

Es scheint mir, als ob der das neue einfach hintendran gesetzt hat, und dann eben wie gewünscht abgeschnitten hat. Aber warum zum Teufel setzt der das hintendran?

Weil das $_data[] = $_satz;  den Satz immer hinten an das Datenarray anhängt.

Wenn Du gezielt ein Arrayelement verändern willst, musst Du den Index angeben

$_data[27] = $_satz;

würde den neuen oder veränderten Datensatz auf Index 27, also auf die 28. Stelle (wenn noch kein Element fehlt) schreiben.

Teil doch Deine das Array:

$_meta = array();
$_data = array();

irgendwie ganz am Anfang, wenn die Datei noch nicht da war...

$_file = array();
$_file['meta'] = array();
$_file['data'] = array();

$_file['meta']['lastid'] = 0;
$_file['meta']['lastupdate'] = date(...);

für den ersten Datensatz:

$_file['meta']['lastid']++;
$id       = $_file['meta']['lastid'];
$lastdate = $_file['meta']['lastupdate'];  # für die Anzeige merken
$_file['meta']['lastupdate'] = date(...);  # für die Veränderung speichern

$_file['data'][$id]['autor'] = $_POST['autor']; # vergiss stripslashes() nicht
...

$filestream = serialize...

Und weg damit.

Wie du siehst: Array in Array in Array...

datei --+---[meta]--+----[lastid]----'4'
          |           +----[lastdate]--'20040615'
          |
          |
          +---[data]--+----[0]--+--[autor]----'thomas'
        ( | )         |         +--[titel]----'speichern in Flatfiles'
        ( | )         |         +--[test]-----'blablabla'
          v           |
         usw.         |
                      +----[3]--
                      |
                      |
                      |
                      |
                      +----[4]--

Datensatz 1 und 2 wurden schon gelöscht. Schade eigentlich. Trotzdem wissen wir, dass die nächste ID die 5 sein muss. Ist doch klasse, oder?

Liebe Grüße aus http://www.braunschweig.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau
0 163

Zeile in Textdatei löschen - aber wie

Dennis
  • php
  1. 0
    Harry
    1. 0
      Dennis
      1. 0
        Fabian Transchel
        1. 0
          Dennis
          1. 0
            Dennis
    2. 0
      Auge
  2. 0
    Tom
    1. 0
      Harry
      1. 0
        Tom
        1. 0
          Tom
        2. 0
          Harry
          1. 0
            Tom
            1. 0
              Harry
              1. 0
                Tom
                1. 0

                  Nervende Werbung

                  Dennis
                  • meinung
                  1. 0
                    Fabian Transchel
                    1. 0
                      Dennis
                  2. 0
                    Schuer
                    1. 0
                      Tom
                      1. 0
                        Schuer
                        1. 0
                          Tom
    2. 0
      Dennis
      1. 0
        Tom
        1. 0
          Dennis
          1. 0
            Tom
            1. 0
              Dennis
              1. 0
                Tom
                1. 0
                  Dennis
                  1. 0
                    Tom
                    1. 0
                      Dennis
                      1. 0
                        Tom
                        1. 0
                          Dennis
                          1. 0
                            Tom
                            1. 0
                              Dennis
                              1. 0
                                Tom
                                1. 0
                                  Dennis
                                  1. 0

                                    safe Mode

                                    Dennis
                                  2. 0
                                    Tom
                                    1. 0
                                      Dennis
                                      1. 0

                                        Geschafft!!! Aber nun weiter...

                                        Dennis
                                        1. 0
                                          Tom
                                          1. 0

                                            Verschieben von Daten - Archivierung

                                            Dennis
                                            1. 0
                                              Tom
                                              1. 0
                                                Dennis
                                                1. 0
                                                  Tom
                                                  1. 0
                                                    Tom
                                                    1. 0
                                                      Dennis
                                                      1. 0
                                                        Dennis
                                                        1. 0

                                                          News Script

                                                          Dennis
                                                          1. 0

                                                            File Locking, Fehlerbehandlung

                                                            Tom
                                                            1. 0
                                                              Dennis
                                                              1. 0
                                                                Tom
                                                                1. 0
                                                                  Dennis
                                                                  1. 0
                                                                    Tom
                                                                    1. 0
                                                                      Tom
                                                                      1. 0
                                                                        Dennis
                                                                        1. 0
                                                                          Dennis
                                                                          1. 0
                                                                            Tom
                                                                            1. 0
                                                                              Dennis
                                                                              1. 0
                                                                                Tom
                                                                                1. 0
                                                                                  Dennis
                                                                                  1. 0
                                                                                    Tom
                                                                                    1. 0
                                                                                      Dennis
                                                                                      1. 0
                                                                                        Tom
                                                                                        1. 0
                                                                                          Dennis
                                                                                          1. 0
                                                                                            Tom
                                                                                            1. 0
                                                                                              Dennis
                                                                                              1. 0
                                                                                                Tom
                                                                                                1. 0
                                                                                                  Dennis
                                                                                                  1. 0
                                                                                                    Tom
                                                                                                    1. 0
                                                                                                      Dennis
                                                                                                      1. 0
                                                                                                        Tom
                                                                                                        1. 0

                                                                                                          Haaaalol, sieht uns jemand?

                                                                                                          Tom
                                                                                                          • zu diesem forum
                                                                                                          1. 0

                                                                                                            Haaa *lol*, hier liest keiner mehr :-(

                                                                                                            Dennis
                                                                                                            1. 0

                                                                                                              HAAAALLOOO, SIEHT UNS KEINER? Wertebereich von Schlüsseln

                                                                                                              Tom
                                                                                                              • datenbank
                                                                                                              1. 0
                                                                                                                Vinzenz
                                                                                                              2. 0
                                                                                                                Vinzenz
                                                                                                              3. 0
                                                                                                                Vinzenz
                                                                                                                1. 0
                                                                                                                  Tom
                                                                                                        2. 0

                                                                                                          Functionen, Archivierung

                                                                                                          Dennis
                                                                                                          1. 0
                                                                                                            Tom
                                                                                                            1. 0
                                                                                                              Dennis
                                                                                                              1. 0

                                                                                                                Tom?

                                                                                                                Dennis
                                                                                                                1. 0
                                                                                                                  Tom
                                                                                                                  1. 0

                                                                                                                    Projekt Flatfiles: Datensicherung

                                                                                                                    Tom
                                                                                                                  2. 0
                                                                                                                    Tom
                                                                                                                    1. 0
                                                                                                                      Dennis
                                                                                                                      1. 0
                                                                                                                        Tom
                                                                                                                        1. 0

                                                                                                                          Schnelles und speicherplatzsparendes Speichern in Flatfiles

                                                                                                                          Dennis
                                                                                                                          1. 0

                                                                                                                            Speichern in Flatfiles

                                                                                                                            Tom
                                                                                                                            1. 0
                                                                                                                              Dennis
                                                                                                                              1. 0
                                                                                                                                Tom
                                                                                                                                1. 0
                                                                                                                                  Dennis
                                                                                                                                  1. 0

                                                                                                                                    Tom?

                                                                                                                                    Dennis
                                                                                                                                    1. 0
                                                                                                                                      Dennis
                                                                                                                                      1. 0
                                                                                                                                        Arx
                                                                                                                                        1. 0

                                                                                                                                          Flatfile Funktionen

                                                                                                                                          Dennis
                                                                                                                                          1. 0
                                                                                                                                            Arx
                                                                                                                                            1. 0
                                                                                                                                              Dennis
                                                                                                                                              1. 0
                                                                                                                                                Arx
                                                                                                                                                1. 0
                                                                                                                                                  Dennis
                                                                                                                                                  1. 0
                                                                                                                                                    Arx
                                                                                                                                                    1. 0
                                                                                                                                                      Dennis
                                                                                                                                                      1. 0

                                                                                                                                                        Signatur

                                                                                                                                                        Arx
                                                                                                                                                        • zu diesem forum
                                                                                                                                                        1. 0
                                                                                                                                                          Dennis
                                                                                                                                                          1. 0
                                                                                                                                                            Arx
                                                                                                                                                            1. 0
                                                                                                                                                              Dennis
                                                                                                                                                              1. 0
                                                                                                                                                                Dennis
                                                                                                                                                                1. 0
                                                                                                                                                                  Arx
                                                                                                                                                              2. 0
                                                                                                                                                                Arx
                                                                                                                                                                1. 0
                                                                                                                                                                  Dennis
                                                                                                                                                                  1. 0
                                                                                                                                                                    Arx
                                                                                                                                                                    1. 0
                                                                                                                                                                      Arx
                                                                                                                                                                      1. 0
                                                                                                                                                                        Dennis
                                                                                                                                                                        1. 0
                                                                                                                                                                          Arx
                                                                                                                                                                          1. 0
                                                                                                                                                                            Dennis
                                                                                                                                                                            1. 0
                                                                                                                                                                              Arx
                                                                                                                                                                              1. 0
                                                                                                                                                                                Dennis
                                                                                                                                                                                1. 0
                                                                                                                                                                                  Arx
                                                                                                                                                                                  1. 0
                                                                                                                                                                                    Dennis
                                                                                                                                                                                    1. 0
                                                                                                                                                                                      Arx
                                                                                                                                                                                      1. 0
                                                                                                                                                                                        Dennis
                                                                                                                                                                                        1. 0
                                                                                                                                                                                          Arx
                                                                                                                                                                                          1. 0
                                                                                                                                                                                            Dennis
                                                                                                                                                                                            1. 0
                                                                                                                                                                                              Tom
                                                                                                                                                                                              1. 0
                                                                                                                                                                                                Dennis
                                                                                                                                                                                                1. 0
                                                                                                                                                                                                  Tom
                                                                                                                                                                                        2. 0
                                                                                                                                                                                          Thomas J.S.
                                                                                                                                                                                          1. 0
                                                                                                                                                                                            Dennis
                                                                                                                                                                                            1. 0
                                                                                                                                                                                              Thomas J.S.
                                                                                                                                                                                              1. 0
                                                                                                                                                                                                Dennis
                                                                                                                                                                    2. 0
                                                                                                                                                                      Dennis
                                                                                                                                                                      1. 0
                                                                                                                                                                        Arx
                                                                                                                                                                        1. 0

                                                                                                                                                                          Dies ist ein Test

                                                                                                                                                                          Dennis
                                                                                                                                                                          1. 0
                                                                                                                                                                            Arx
                                                                                                                                                                            1. 0
                                                                                                                                                                              Dennis
                                                                                                                                                                              1. 0
                                                                                                                                                                                Jan R.
                                                                                                                                                                                1. 0
                                                                                                                                                                                  Dennis
                                                                                                                                          2. 0
                                                                                                                                            Tom
                                                                                                                                  2. 0
                                                                                                                                    Tom
                                                                                                                                    1. 0
                                                                                                                                      Dennis
                                                                                                                                      1. 0
                                                                                                                                        Dennis
                                                                                                                                        1. 0
                                                                                                                                          Dennis
                                                                                                                                          1. 0
                                                                                                                                            Dennis
                                                                                                                                            1. 0
                                                                                                                                              Tom
                                                                                                                                              1. 0
                                                                                                                                                Dennis
                                                                                                                                                1. 0
                                                                                                                                                  Tom
                                                                                        2. 0
                                                                                          Tom
                                                                                          1. 0

                                                                                            Speichern in Flatfiles: Performance

                                                                                            Tom
                                                                        2. 0
                                                                          Tom
                2. 0

                  WER DAS HIER LIEST BITTE MELDEN

                  HILFE
                  • zur info
    3. 0
      Arx
      1. 0
        Dennis
  3. 0

    HALLO - Problem Wertebereich von Schlüsseln

    Dennis
    • datenbank
    1. 0
      Thomas J.S.
      1. 0
        Dennis
        1. 0
          Thomas J.S.
          1. 0
            Dennis
        2. 0
          Andreas Korthaus
          1. 0
            Dennis
          2. 0
            Tom
            1. 0
              Andreas Korthaus