Michael W.: Konturen erkennen

Hallo,

angenommen wir habe eine große datei:

bla bla
USER=USERNAME1
SONSTIGES=HALLO1
bla bla
##########
bla bla
USER=USERNAME2
SONSTIGES=HALLO2
bla bla
##########
bla bla
USER=USERNAME3
SONSTIGES=HALLO3
bla bla

am ende möchte ich das die daten ohne das bla bla steht. kann php die ######### erkennen und in abschnitten jedes mal das slebe wort suchen ? es soll nach einem bestimmten begriff suchen; wenn es das gefunden hat soll es die zeile speichern und so ausgeben:

USER=USERNAME1
SONSTIGES=HALLO1

USER=USERNAME2
SONSTIGES=HALLO2

oder so:

USERNAME1 : HALLO1
USERNAME2 : HALLO2

ich denke aber ersteres ist einfacher ...

Danke

  1. Hallo,

    hallo,

    USERNAME1 : HALLO1
    USERNAME2 : HALLO2

    lies die datei in einen string ein und verwende dann z.b. preg_match_all()
    ein denkbarer ausdruck wäre in deinem fall "/USER=([^\n]*).*?SONSTIGES=([^\n]*)/is"

    Danke

    lg
    MADU

  2. Hallo,

    angenommen wir habe eine große datei:

    bla bla
    USER=USERNAME1
    SONSTIGES=HALLO1
    bla bla
    ##########
    bla bla
    USER=USERNAME2
    SONSTIGES=HALLO2
    bla bla
    ##########
    bla bla
    USER=USERNAME3
    SONSTIGES=HALLO3
    bla bla

    am ende möchte ich das die daten ohne das bla bla steht. kann php die ######### erkennen und in abschnitten jedes mal das slebe wort suchen ? es soll nach einem bestimmten begriff suchen; wenn es das gefunden hat soll es die zeile speichern und so ausgeben:

    USER=USERNAME1
    SONSTIGES=HALLO1

    USER=USERNAME2
    SONSTIGES=HALLO2

    Grober Ansatz:

    <?php

    $daten=file("daten.txt");
    for($i=0;$i<count($daten);$i++)
    {
      if(strstr($daten[$i],"USER") || strstr($daten[$i],"SONSTIGES"))
      {
        // Ausgabe von $daten[$i] in Datei: fwrite($dateiref,$daten[$i]);
        // oder HTML:
        print $daten[$i]."<br>\n";
      }
    }

    ?>

    MfG, Thomas

    1. das klappt wunderbar !!

      nur wie bekomme ich zwischen allen einen absatz hin ?
      http://mitglied.lycos.de/djwoelk3/test/zeile/servercheck.php

      ich hätte es halt gerne so:

      Processor: Intel Pentium with MMX-1671
      USER=supervisor1

      Processor: Intel Pentium with MMX-1672
      USER=supervisor2

      Processor: Intel Pentium with MMX-1673
      USER=supervisor3

      1. Hallo,

        nur wie bekomme ich zwischen allen einen absatz hin ?

        Das kann doch nicht so schwer sein, einen oder zwei Breaks zu setzen:

        <?php

        $daten=file("daten.txt");
        for($i=0;$i<count($daten);$i++)
        {
          if(strstr($daten[$i],"USER"))
          {
            print $daten[$i]."<br>\n";
          }

        if(strstr($daten[$i],"SONSTIGES"))
          {
            print $daten[$i]."<br><br>\n";
          }
        }

        ?>

        MfG, Thomas

        1. <?php

          $daten=file("daten.txt");
          for($i=0;$i<count($daten);$i++)
          {
            if(strstr($daten[$i],"USER"))
            {
              print $daten[$i]."<br>\n";
            }

          if(strstr($daten[$i],"SONSTIGES"))
            {
              print $daten[$i]."<br><br>\n";
            }
          }

          so funktioniert das nicht. der absatz ist an der falschen stelle :)
          http://mitglied.lycos.de/djwoelk3/test/zeile/servercheck.php:

          Processor: Intel Pentium with MMX-1671

          USER=supervisor1
          Processor: Intel Pentium with MMX-1672

          USER=supervisor2
          Processor: Intel Pentium with MMX-1673

          USER=supervisor3

          ich wollte das aber so:

          Processor: Intel Pentium with MMX-1671
          USER=supervisor1

          Processor: Intel Pentium with MMX-1672
          USER=supervisor2

          Processor: Intel Pentium with MMX-1673
          USER=supervisor3

          Danke :)

          1. habs schon geändert:
            das <br> war nur an der falschen stelle !

            Danke !!!

            1. Hallo,

              habs schon geändert:
              das <br> war nur an der falschen stelle !

              Wenn Du die Reihenfolge aenderst, ist das wohl so ...

              MfG, Thomas

      2. Hallo

        nur wie bekomme ich zwischen allen einen absatz hin ?

        ich hätte es halt gerne so:

        Processor: Intel Pentium with MMX-1671
        USER=supervisor1

        Processor: Intel Pentium with MMX-1672
        USER=supervisor2

        Processor: Intel Pentium with MMX-1673
        USER=supervisor3

        Dann mach es doch so. Wozu gibt's schließlich HTML?

        Tschüß, Auge

        1. du hast wohl ein auge zu wenig.

          1. Tach auch

            du hast wohl ein auge zu wenig.

            Bin mir dessen nicht bewußt.
            Wenn du zu faul bist, selbst nachzudenken, ist das nicht mein Bier.

            Auge