Ankündigung

Einklappen
Keine Ankündigung bisher.

Einzelne Zeilen aus einer Txt Datei löschen

Einklappen

Neue Werbung 2019

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

  • scheibo
    hat ein Thema erstellt Einzelne Zeilen aus einer Txt Datei löschen.

    Einzelne Zeilen aus einer Txt Datei löschen

    Ich habe eine Textdatei in dem die Zeile folgendermaßen aufgelistet sind:
    • Name|Nachricht|Datum|IP
      Name2|Nachricht2|Datum2|IP2
      Name3|Nachricht3|Datum3|IP3
      Name4|Nachricht4|Datum4|IP4
      Name5|Nachricht5|Datum5|IP5
      Name6|Nachricht6|Datum6|IP6
      Name7|Nachricht7|Datum7|IP7


    Jetzt möchte ich diese im Browser per PHP ausgeben und einzelne Zeilen löschen.
    Die Ausgabe habe ich hinbekommen:

    PHP-Code:
    <?
    $inhalt = file('nachrichten.txt');
    $i=0;
    foreach($inhalt AS $ausgabe)
    {
       $zerlegen = explode("|", $ausgabe);
       echo 'Von: '.$zerlegen[0].' 
    ';
       echo 'Nachricht: '.$zerlegen[1].' 
    ';
       echo 'Datum: '.$zerlegen[2].' 
    ';
       echo 'IP: '.$zerlegen[3].' 

    ';
       $i++;
       
    }
    ?>
    Aber wie mache ich das mit de Löschen?

  • scheibo
    antwortet
    Zitat von Brease
    aso. ich hätte vorher mal noch eine frage: bekommst du keinen parse error?
    PHP-Code:
    <?php
    echo '<form method="post" action="'.$HTTP_SERVER_VARS['PHP_SELF'].'">'
    ?>
    eigentlich darfst du zwischen einfachen anführungsstrichen nur doppelte und zwischen doppelten nur einfache. und du hast zwischen einfachen auch nochmal einfache gesetzt
    darausfolgt: pars error
    Nein bekomme ich nicht.

    Denn wo sind hier die anführungsstriche falsch?
    • echo '<form method="post" action="'.$HTTP_SERVER_VARS['PHP_SELF'].'">';


    Rot = Doppel
    Blau = Einfach

    Einen Kommentar schreiben:


  • Brease
    antwortet
    aso. ich hätte vorher mal noch eine frage: bekommst du keinen parse error?
    PHP-Code:
    <?php
    echo '<form method="post" action="'.$HTTP_SERVER_VARS['PHP_SELF'].'">'
    ?>
    eigentlich darfst du zwischen einfachen anführungsstrichen nur doppelte und zwischen doppelten nur einfache. und du hast zwischen einfachen auch nochmal einfache gesetzt
    darausfolgt: pars error

    Einen Kommentar schreiben:


  • scheibo
    antwortet
    Also ich will die einzelne Zeilen löschen.
    Ich weiß die einzelnen schritte wie ich die | wegbekomme oder die einzelnen Zeilen löschen, aber ich weiß nicht wie ich beides anstelle, also das es insgesamt so aussieht wie in meinem 2 Post nur ohne | .

    Einen Kommentar schreiben:


  • Brease
    antwortet
    Also jetzt nochmal eine Verständnissfrage: Zuerst willst du die Einträge löschen. Dann willst du die | weg bekommen. Und jetzt hast du die plötzlich weg bekommen, und willst nur die Daten übergeben richtig?

    Einen Kommentar schreiben:


  • scheibo
    antwortet
    Zitat von Brease
    Ich hoffe ich habe dich richtig verstanden
    Leider nicht,
    Ich bekommen die | mit

    PHP-Code:
    <? 
    $inhalt = file('nachrichten.txt'); 
    $i=0; 
    foreach($inhalt AS $ausgabe) 

       $zerlegen = explode("|", $ausgabe); 
       echo 'Von: '.$zerlegen[0].' 
    '; 
       echo 'Nachricht: '.$zerlegen[1].' 
    '; 
       echo 'Datum: '.$zerlegen[2].' 
    '; 
       echo 'IP: '.$zerlegen[3].' 

    '; 
       $i++; 
        

    ?>
    weg, aber wie übergebe ich die Daten hier rein?

    PHP-Code:
    <?
    echo '<form method="post" action="'.$HTTP_SERVER_VARS['PHP_SELF'].'">'; 
    while (list($inhalt_key,$inhalt_val) = each($inhalt)) { 
    echo $inhalt_val.'<input type="checkbox" name="delete'.$inhalt_key.'">
    '; 

    echo '<input type="submit" name="delete"></form>'; 

    ?>
    Also das die Checkbox hinter jeder Zeile angezeigt wird und beim Absenden auch als ganze zeile übernommen wird.

    Einen Kommentar schreiben:


  • Brease
    antwortet
    PHP-Code:
    <?php
     $inhalt 
    file('nachrichten.txt');
     
    $i 0;
     foreach(
    $inhalt AS $ausgabe)
     {
        
    $zerlegen explode("|"$ausgabe);
        
    $array = array($zerlegen[0], zerlegen[1], zerlegen[2], zerlegen[3]);
        
    $zusammen implode(" ""$array"); //Leerzeichen nicht vergessen!
        
    echo $zusammen;
        
    $i++;   
     }
    ?>
    Ich hoffe ich habe dich richtig verstanden

    Einen Kommentar schreiben:


  • scheibo
    antwortet
    O.k., ich stelle die Frage mal anders, denn wie ich die einzelne Zeile lösche bekomme ich jetzt hin, nur die Ausgabe sieht noch nicht so aus wie sie sein soll.

    Also die Daten werde jetzt so:
    • Name|Nachricht|Datum|IP [Checkbox]
      Name2|Nachricht2|Datum2|IP2 [Checkbox2]
      Name3|Nachricht3|Datum3|IP3 [Checkbox3]
      Name4|Nachricht4|Datum4|IP4 [Checkbox4]
      Name5|Nachricht5|Datum5|IP5 [Checkbox5]
      Name6|Nachricht6|Datum6|IP6 [Checkbox6]
      Name7|Nachricht7|Datum7|IP7 [Checkbox7]

      [Sende Button]


    angezeigt, ich möchte aber das die | weg sind.
    Wie stelle ich das an?

    Hier mein jetziger Quelltext:

    PHP-Code:
    <?php

    if (isset($HTTP_POST_VARS['delete'])) {
    $inhalt file('nachrichten.txt');
    $fp fopen('nachrichten.txt','w');
    flock($fp,2);
    while (list(
    $inhalt_key,$inhalt_val) = each($inhalt)) {
    if (!isset(
    $HTTP_POST_VARS['delete'.$inhalt_key])) {
    fwrite($fp,$inhalt_val);
    }
    }
    flock($fp,3);
    fclose($fp);
    }


    $inhalt file('nachrichten.txt');

    echo 
    '<form method="post" action="'.$HTTP_SERVER_VARS['PHP_SELF'].'">';
    while (list(
    $inhalt_key,$inhalt_val) = each($inhalt)) {
    echo 
    $inhalt_val.'<input type="checkbox" name="delete'.$inhalt_key.'">
    '
    ;
    }
    echo 
    '<input type="submit" name="delete"></form>';

    ?>

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    13.4. Wie kann ich in einer Datei eine Zeile einfügen oder löschen?
    http://faq-phpfriend.de/q/q-datei-einfuegen.html

    Gruß
    phpfan

    Einen Kommentar schreiben:

Lädt...
X