Letzte zeile aus einer Textdatei auslesen

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

  • Letzte zeile aus einer Textdatei auslesen

    Hallo,

    verzeiht mir meine Unwissenheit. Ich möchte aus einer Textdatei lediglich die Letzte Zeile auslesen und ggf noch formatieren.
    Meine bisherigen Versuche schlugen alle fehl. Und google.de und die SUFU konnte mir auch net weiterhelfen.
    Momentan sieht das script so aus:
    PHP-Code:
    $fp fopen("temp.met","r");
       if (
    $fp)
       {
          while (!
    feof($fp))
          {
             
    $zeile fgets($fp100);
             echo 
    $zeile;
          }
          
    fclose($fp);
       }
       else
          echo 
    "n/a"
    Hab rausgefunden, dass ich das nur mit nem array lösen kann. Stimmt das?
    Danke schonmal im Vorraus für eure Hilfe.
    MfG Toebal

  • #2
    Hab rausgefunden, dass ich das nur mit nem array lösen kann. Stimmt das?
    So würd ich das nicht sagen, aber ein Array ist sicherlich ein guter Ansatz: file()

    In deinem Beispiel gibt er dir doch die ganze File aus, oder?
    Setz mal das echo $zeile; ganz ans Ende!?!
    Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
    Es wär nur deine Schuld, wenn sie so bleibt

    Kommentar


    • #3
      Danke,
      aber die manpages helfen mir nich so wirklich weiter.
      Wie kann ich denn eine textdatei in ein array lesen? *google*
      Original geschrieben von Rumo

      In deinem Beispiel gibt er dir doch die ganze File aus, oder?
      Setz mal das echo $zeile; ganz ans Ende!?!
      was meinste denn mit "ganz ans ende?" das steht doch schon als letzte anweisung bevor ich die datei wieder schließe?

      Kommentar


      • #4
        Die Funktion file() ist identisch mit readfile(), außer dass die eingelesene Datei als Array zurückgegeben wird. Jedes Feld des Arrays korrespondiert mit einer Zeile der Datei.
        weiter unten ein beispiel:
        PHP-Code:
        // Liest eine Datei in ein Array. [...]
        $lines file ('[...]'); 
        was ist daran unklar?

        Kommentar


        • #5
          aber die manpages helfen mir nich so wirklich weiter.
          Mal ehrlich: das ist schlecht!
          Schauen wir doch mal was da steht:
          file -- Liest eine Datei komplett in ein Array
          Beschreibung:
          array file ( string filename [, int use_include_path])
          [...]
          Jedes Feld des Arrays korrespondiert mit einer Zeile der Datei.
          du gist den Namen der Datei (zu englisch: filename) an, die "komplett in ein Array" gelesen werden soll.
          Dabei entspricht jeder Teil des Arrays einer Zeile.
          und du willst jetzt die letzte zeile... hmm... *grübel*

          was meinste denn mit "ganz ans ende?" das steht doch schon als letzte anweisung bevor ich die datei wieder schließe?
          hast schon ausprobiert?
          setz es einfach mal hinter echo "n/a"; und dann überleg warum er da macht, was er macht.
          Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
          Es wär nur deine Schuld, wenn sie so bleibt

          Kommentar


          • #6
            wunderbar. das mit dem array klappt.
            PHP-Code:
            $lines file ('temp.met');
            foreach (
            $lines as $line_num => $line) {
               echo (
            $line);

            und was für möglichkeiten hab ich jetzt, nur die letzte zeile anzuzeigen?

            Kommentar


            • #7
              na, einfach das letzte Array_element ausgeben

              Ach, komm, das ist doch nicht so schwer...

              ARRAY-FUNKTIONEN
              Es ist nicht deine Schuld, dass die Welt ist, wie sie ist,
              Es wär nur deine Schuld, wenn sie so bleibt

              Kommentar


              • #8
                OffTopic:
                Ach, komm, das ist doch nicht so schwer...


                ich weiss es, ich weiss es
                Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                Kommentar


                • #9
                  tut mir ja leid, aber logisch für mich wäre jetzt
                  PHP-Code:
                  $lines file ('temp.met');
                  foreach (
                  $lines as $line_num => $line) {
                     echo 
                  array_pop($lines);

                  aber ich bin da wohl im irrtum... er gibt mir die datei rückwärts wieder.
                  es ist halt immer schwierig, wenn man nichtmal weiß, wonach man suchen soll.
                  Zuletzt geändert von toebal; 20.06.2005, 14:24.

                  Kommentar


                  • #10
                    Original geschrieben von Arni
                    OffTopic:
                    Ach, komm, das ist doch nicht so schwer...


                    ich weiss es, ich weiss es
                    das freut mich, aber hilfreicher wäre es, wenn du mich an deinem wissen teilhaben lassen würdest.

                    Kommentar


                    • #11
                      Original geschrieben von toebal

                      es ist halt immer schwierig, wenn man nichtmal weiß, wonach man suchen soll.
                      Stimmt nicht,
                      Rumo hat Dir doch den Link geschrieben mit den Funktionen

                      Schau Dir die Funktionen an bis zum end und Du wirst es herausbekommen
                      Zuletzt geändert von Arni; 20.06.2005, 14:28.
                      Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

                      Kommentar


                      • #12
                        Original geschrieben von Arni
                        bis zum end und Du wirst es herausbekommen
                        optimal!
                        danke euch. wer hätte gedacht, dass des nur 3 programmzeilen sind.
                        mfg Toebal

                        Kommentar


                        • #13
                          oder man lässt den zeiger in frieden ruhen und greift auf das letzte element zu:
                          PHP-Code:
                          $arrLines[count($arrLines)-1

                          Kommentar


                          • #14
                            jo, das klappt jetzt alles soweit.
                            ich würde den text aber gerne noch irgendwie fomatieren:

                            05 06 20 08 31 00 3.17 100.00 1013.5 1.90 0.0 255.82

                            so sieht die zeile aus.
                            kann ich daraus irgendwie

                            20.06.05 08:31 Uh usw.
                            machen?

                            Kommentar


                            • #15
                              Mit mehrfacher Anwendung von substr().

                              Kommentar

                              Lädt...
                              X