kostenloser Webspace werbefrei: lima-city


Php - Textdatei Linie ersetzen, die speziellen String enthäl

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    bastians-seite

    Kostenloser Webspace von bastians-seite

    bastians-seite hat kostenlosen Webspace.

    Hier kurz in gebrochenem Englisch, schnellgetippt das ref="/tag/problem">Problem geschildert (original auf englischer fb-Seite gepostet):

    I want to read with the php program if a text file contains a specific string. So far so good. Here's my code:
    <?php
    $Datei = file("user/blabla.txt");
    foreach($Datei as $row)
    {
      if(strpos($row, "abc")!==false)
       {
          /* now string has been detected        in this rowof txt file ---> how can I now remove the ENTIRE line which contains the detected string? For this maybe I need to know which array key the line has in file variable Datei. For example string detected in line 3, (key 4), REMOVE key 4 contents from file and recreate file without the line... but how is it possible?  Pls help... this is just code example but my actual code looks quite similar to this example
    */
    
       }
    }
    ?>


    Kann mir bitte jemand weiterhelfen?

    Beitrag zuletzt geändert: 19.2.2018 17:55:24 von bastians-seite
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. h***********r

    You could solve it like this:

    if your string is found
    find current position in array with $pos = current($array);
    and then remove it, maybe with array[$pos] = null;
  4. Autor dieses Themas

    bastians-seite

    Kostenloser Webspace von bastians-seite

    bastians-seite hat kostenlosen Webspace.

    thanks for answering
    Unfortunately can't use it.... no file handler or smth similar.... now how to save the changed array value in the text file with my file put contents?
  5. Deine Frage lautet: Wie benutzt man unset()?

    In Deinem Fall also:
    $file = file('something.txt');
    foreach($file as $lineNo => $line)
        if(strpos($line, "abc")!==false)
            unset($file[$lineNo]);


    Idealerweise solltest du aber folgende methodik verwenden:
    $file = file('something.txt');
    $res = array();
    foreach($file as $line) {
        if(strpos($line, "abc")!==false)
            continue;
        $res[] = $line;
    }

    Auf diesem Weg bleibt das original erhalten und man vermeidet mögliche Probleme. Die erste variante ist aber eindeutig die schnellere und je nach größe der Datei auch schonender für den Server.

    Beitrag zuletzt geändert: 20.2.2018 6:17:35 von strange
  6. Autor dieses Themas

    bastians-seite

    Kostenloser Webspace von bastians-seite

    bastians-seite hat kostenlosen Webspace.

    Danke für die Antwort, Lima verbietet es mir leider
    dir eine positive Bewertung zu geben. Entschuldige
    bitte, vielen Dank du hast mir wirklich weitergeholfen.
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!