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
    [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
    [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

    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...
        [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
        [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

        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.
            [I]Es ist schon alles gesagt! Nur noch nicht von allen! (Karl Valentin)[/I]
            [I]Wenn du eine weise Antwort verlangst, musst du vernünftig fragen. (Johann Wolfgang von Goethe)[/I]

            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!
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar

              Lädt...
              X