Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Komplette Zeile in einer Datei Löschen

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Komplette Zeile in einer Datei Löschen

    Guten Morgen Zusammen,

    wie kann ich in ein er datei eine komplette Zeile Löschen in der mein Suchwort enthalten ist?

    DATEI

    Code:
    kevin;einkleinertext
    admin;textdazwischen
    max;eingrossertext
    Ich möchte zum Beispiel die Zeile mit dem admin Löschen. Bisher konnte ich es immer nur ersetzen, aber dann war eine leerzeile vorhanden.

    PHP-Code:
    $dateipfad="../data/lists.txt";
    $datei=file_get_contents($dateipfad);

    $suchwort="admin";

    file_put_contents($dateipfadpreg_replace("/$suchwort/","",$datei)); 
    Kann mir einer weiterhelfen?
    Gruß Alecane


  • #2
    Du durchläufst deine alte Datei Zeile für Zeile. Du schreibst jede Zeile, bis auf die, die deinem Suchmuster entsprechen wieder zurück.

    Sinngemäß so:

    SOLANGE zeile vorhanden
    WENN NICHT suchmuster in zeile
    schreibe zeile
    ENDE
    Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
    Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

    Kommentar


    • #3
      Das klingt gut, aber wie ganu meinst du das?

      mein aktueller Code

      PHP-Code:
      $dateipfad="../data/.passwd.txt";
      $dateiinhalt=file($dateipfad);

      foreach(
      $dateiinhalt as $value)
      {
       
      $tmp=explode(';'$value);

       if(
      strstr($tmp[0], 'admin'))
       {
        
       }

      Kommentar


      • #4
        Du hast es doch schon fast...

        PHP-Code:
        <?php
        $dateipfad     
        "passwd.txt";
        $dateiinhalt file($dateipfad);

        $suchmuster '/^admin/';
        $neuerInhalt "";


        foreach ( 
        $dateiinhalt as $zeile ) {
            if ( !
        preg_match($suchmuster$zeile) ) {
                
        $neuerInhalt.= $zeile;
            }
        }

        file_put_contents($dateipfad$neuerInhalt);
        Auch wenn ich hiermit meiner Signatur widerspreche...
        Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
        Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

        Kommentar


        • #5
          tut mir Leid, als ich gerade wieder posten wollte habe ich dein letzten Beitrag gelesen, aber dank deiner ersten hilfe habe ich es doch alleine hinbekommen, mein code:

          PHP-Code:
          $dateipfad="../data/.passwd2.txt";
          $dateiinhalt=file($dateipfad);

          foreach(
          $dateiinhalt as $value)
          {
           
          $tmp=explode(';'$value);

           if(!
          strstr($tmp[0], $benutzer))
           {
           
          $text=$text.$value;
           }
          }
          file_put_contents($dateipfad$text); 
          Also nochmals Vielen Dank

          Kommentar


          • #6
            Zitat von Alecane Beitrag anzeigen
            [...]habe ich es doch alleine hinbekommen[...]
            Perfekt! So soll es auch sein.
            Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)
            Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)

            Kommentar


            • #7
              Für den speziellen Fall:

              PHP-Code:
              $path "../data/.passwd2.txt";
              $contents file ($path);

              if (!empty (
              $contents))
              {
                foreach (
              $contents as $key => $value
                {
                  if(
              === strpos ($value $benutzer ';')) // ltrim benutzen, wenn Leerzeichen vorkommen können
                  
              {
                    unset (
              $contents[$key]);
                    
              // break; benutzen, wenn Zeile nur einmal vorkommen kann.
                  
              }
                }

                
              file_put_contents($path implode ('' $contents));  


              PS: konsistente Variablenbenamung angewöhnen!
              --

              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


              --

              Kommentar

              Lädt...
              X