Einzelnen text in Textdatei ändern.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Einzelnen text in Textdatei ändern.

    Kann mir mal einer sagen wie ich Teile einer Textdatei ersetze.

    gehen wir davon aus, dass folgender Inhalt einer Datei gegeben ist:
    Meier,Markus,123
    Hoffmann,Klaus,23
    Diebel,Daniela,556

    Nun möchte ich per Link die Anzahl der Hoffmann ein höher setzen, also
    Hoffmann,Klaus,24

    Die Daten befinden sich in einer textdatei. Ich möchte das mit php ändern können. Es werden mit dem Link folgende Viaablen übergeben: name,vorname, anzahl. Wobei Anzahl also noch 23 ist.
  • wenn es performant sein soll, dann kann man mit schreibzugriffen erheblich sparen.
    Aber im kleinen Rahmen würd ich mir die Datei einfach in einen String lesen und komplett überschreiben.

    Quellcode

    1. <?
    2. //name und vorname des zu inkrementierenden datensatzes werden per GET übergeben
    3. $update = false;
    4. $output = "";
    5. $handle = fopen("users.txt", "r+");
    6. while($userinfo = fgets($handle, 4096)) {
    7. list($n, $v, $c) = $userinfo = explode(',',$userinfo);
    8. $c = intval($c);
    9. if($_GET['name'] == $n && $_GET['vorname'] == $v) {
    10. $update = true;
    11. $c += 1;
    12. }
    13. $output .= "$n,$v,$c\n";
    14. }
    15. rewind($handle);
    16. if($update)
    17. fwrite($handle, $output);
    18. fclose($handle);
    19. echo file_get_contents('users.txt');
    20. ?>
    Alles anzeigen


    Aufzurufen mit
    ***.php?name=Hoffmann&vorname=Klaus
    oder eben ohne name
  • Gut gelöst. wäre ich so nicht drauf gekommen. Danke dafür.

    Aber ein kleines prob bleibt noch. Er fügt jetzt ja in der Textdatei noch am Ende einen Zeilenumbruch ein. Das soll ja nicht sein. Ich möchte die einzelnen Datensätze noch grafisch in HTML umwandeln. Und dann sieht es nicht schön aus, wenn das Letzte Feld zwar grafisch aufgebaut wird, aber keine Daten drin sind.

    Die letzte Zeilen sollte also keinen Zeilenumbruch mehr haben.