Variablen hochzählen

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

  • Variablen hochzählen

    Hallo,
    in einem Script werden Variablen hochgezählt, mit der
    der Bedingung wenn "kleiner als x Zeilen, dann..."

    Es geht dabei um das Hineinschreiben von Daten in eine
    Textdatei.

    $fileAr= file($filename);
    exec("cat /dev/null > $filename");
    $fd = fopen( $filename1, "w+" );
    $filemessage = "<a href=\"...</a> : ";
    $filemessage .="...............\n";
    fputs($fd,$filemessage);

    $numLines1 = 100;
    for ($i=0;$i<$numLines1;$i++) {
    fputs($fd,$fileAr[$i]);
    }
    fclose( $fd1 );

    Jetzt möchte ich jedoch gerne das Die geschriebenen Zeilen
    unendlich reinschreiben, die Bedingung <100 also raus.

    Hat jemand eine Lösung?

    oder geht das auch einfacher dann, ohne Array, Zeile wird
    in der Datei immer angehängt?

  • #2
    PHP-Code:

    foreach ($fileAr AS $row) { 
       
    fputs($fd,$row); 

    carpe noctem

    [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
    [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

    Kommentar


    • #3
      Hallo,

      danke schön, aber ich bin da nicht ganz so bewandert,
      kann man das mal 1:1 umsetzen?

      Da muß ja eine variable für row neu erstellt werden?

      Kommentar


      • #4
        Ja und in Deinem Beispiel brauchtest Du 'ne Variable für $numlines1 und für den Index $i ...

        Du kannst aber auch sowas machen ... allerdings 'unendlich' ist's in beiden Fällen nicht:

        PHP-Code:

        for ($i=0;$i<count($fileArt);$i++) { 
        fputs($fd,$fileAr[$i]); 

        carpe noctem

        [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
        [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

        Kommentar


        • #5
          Wenns dann doch nicht unendlich ist, besser
          alles so lassen und statt <100 einfach z.B. < 10000
          einsetzen?

          Kommentar


          • #6
            Ersetze folgenden Code durch eine von Goth's Vorschlägen.
            $numLines1 = 100;
            for ($i=0;$i<$numLines1;$i++) {
            fputs($fd,$fileAr[$i]);
            }

            Mit Goth's Code kannst du dir sicher sein, dass es auch klappt, wenn die Datei mal mehr als 100 Zeilen hat, da immer genausoviel Durchläufe gemacht werden, wie es Zeilen gibt; mit deiner 1. Variante geht das nicht.
            [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
            [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
            [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

            © Harald Schmidt

            Kommentar


            • #7
              Ich bin mir derzeit des Sinnes von Unendlich nicht bewußt ...

              letzlich schreibst Du in der Schleife das Array $fileAr in die Datei ...

              Wenn Du die Daten an die ursprüngliche Datei anhängen willst solltest Du die Datei mit fopen($filename, "a") oder fopen($filename, "a+") öffnen (int fopen ( string filename, string mode [, int use_include_path])
              ).
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Das ist so eine Art Logaufzeichnung für einen Chat.
                Es kamen Beschwerden über einzelne User. Da da
                Ganze über einen Refresh geht, kann ich das natürlich
                nicht überprüfen.
                Unendlich heißt also, bis ich den Dateiinhalt lösche.

                Ist da fopen "a" besser.

                Habe das leider nicht hinbekommen mit obigem
                Beispiel.

                Wenns besser ist hat du nochmal eine Idee wie
                man das in meinem Beispiel korrekt mit fopen "a"
                macht und immer hinten dranhängt?

                Kommentar


                • #9
                  Naja ... "a" ist auf jeden Fall besser ...

                  Allerdings würde ich für Logs eigentlich immer die StandardFunktion int error_log ( string message [, int message_type [, string destination [, string extra_headers]]])
                  verwenden.

                  error_log("Irgendeintext", 3, "/logverzeichnis/logdatei.log");

                  logged dann in die entsprechende Datei ... Du willst aber scheinbar die Neuen Daten vorne stehen haben. Dann mußt Du das schon entprechend umkopieren.

                  Wie gesagt ... normalerweise würde ich's wie oben beschrieben machen ... aber ich kann meine Logs auch mit 'tail /logverzeichnis/logdatei.log' betrachten ...
                  carpe noctem

                  [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                  [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                  Kommentar


                  • #10
                    Danke zusammen,

                    das mit dem error log oder mit "a" hört sich gut an,
                    bin damit aber überfordert.

                    Der oben genannte Code ist ausschließlich für das
                    Schreiben in meine "logdatei".

                    Der eigentliche Text ist nochmal separat definiert,
                    so das der oben genannte Code umgebastelt werden
                    kann wie man will.

                    Falls nochmal jemand Lust hat den oben genannten
                    Code 1:1 für einen error_log umzubauen wäre das toll,
                    ansonsten habe ich es vorerst so gelöst:
                    for ($i=0;$i<count($fileAr);$i++) {
                    fputs($fd,$fileAr[$i]);
                    }

                    Kommentar

                    Lädt...
                    X