.txt Logfiles auslesen und anzeigen

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

  • .txt Logfiles auslesen und anzeigen

    Hallo,

    ich habe eine kleine Datei die mir Logfiles ausliest und im Browser anzeigt:

    <?php
    $datei = fopen("logfiles/count.txt","r");
    $daten = fgetcsv($datei, 1000);
    while ($daten) {
    echo implode(" - ", $daten) . "<br>";
    $daten = fgetcsv($datei, 1000);
    }
    ?>

    Jetzt sind aber zwei Dateien im Ordner Logfiles, count.txt und count2.txt und ich möchte gern das ich durch klick nur eine der beiden Dateien im Browser angezeigt bekomme:

    Datei: <a href="logfiles/count.txt">log.txt</a> - <a href="logfiles/count2.txt">count.txt</a>

    Im Moment ist es so das die Dateien einfach nur im Browser (nicht im vorh. Template!) angezeigt werden.

    Kann man das machen?

  • #2
    Du Liest deine Datei aus und hast dann alles in einem Array. Das Array lässt du dann durchlaufen und fügst die Werte in dein Template ein.

    <a href="logfiles/count.txt">log.txt</a> - <a href="logfiles/count2.txt">count.txt</a>
    Das ist dann nicht richitg, da, wie du schon gesagt hast, dir nur die *.txt ausgegeben wird.
    Wer anderen eine Grube gräbt, der hat ein Grubengrabgerät.

    Kommentar


    • #3
      Re: .txt Logfiles auslesen und anzeigen

      [i]Original geschrieben von Kirzz

      <?php
      $datei = fopen("logfiles/count.txt","r");
      $daten = fgetcsv($datei, 1000);
      while ($daten) {
      echo implode(" - ", $daten) . "<br>";
      $daten = fgetcsv($datei, 1000);
      }
      ?>
      Lässt sich doch einfach auf mehrere Dateien erweitern.

      z.B

      <a href="name_des_php_scripts.php?q=1">log.txt</a>
      <a href="name_des_php_scripts.php?q=2">count.txt</a>


      PHP-Code:
      <?php
      switch ($_GET["q"])
      {
         case 
      1:
              
      $log "logfiles/count";
         break;

         case 
      2:
              
      $log "logfiles/count.txt";
         break;

         case 
      3:
              
      $log "andererordner/irgendwas.txt";
         break;
      }

      if (!
      file_exists($log)) die("Datei nicht gefunden");

      $datei fopen($log,"r");
      $daten fgetcsv($datei1000);
      while (
      $daten
      {
          echo 
      implode(" - "$daten) . "<br>";
          
      $daten fgetcsv($datei1000);
      }
      ?>
      gruss Chris

      [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

      Kommentar


      • #4
        Danke, Du hast mein Leben gerettet, das ist genau was ich brauchte, und dann noch dieser tolle Hinweis falls keine Datei im Ordner ist!

        Perfekt, tausend DANK!!!

        Kommentar


        • #5
          Hallo,

          sorry, ich habe noch eine Frage zum gleichen Script, es geht diesmal um die Sortierreihenfolge in der Ausgabe.

          Die Dateinamen sehen so aus:

          2006-06-26-11-53-57.txt
          2006-07-08-22-41-00.txt

          In der Ausgabedatei
          [COLOR=blue]
          <?php
          $dir = '../daten';
          $handle=opendir ($dir);
          $content = false; // fürs nicht vorhandensein von Daten
          // Verzeichnis lesen - alle .txt Dateien ausgeben
          while (false !== ($file = readdir ($handle))) {
          if (($file != '.') && ($file != '..') && (eregi(".txt", $file)) ){
          $content = true;
          include($dir.'/'.$file);
          ?>
          <tr>
          <td style="width:110px;text-align:left;vertical-align:top;"><? echo $jahr."-".$monat."-".$tag; ?></td>
          <td style="text-align:left;vertical-align:top;"><? echo $news; ?><br><? echo $beschreibung; ?><? if (!empty($link)){ ?><br>
          <a href="http://<? echo $link; ?>" target="_blank"><? echo $link; ?></a>
          <? } ?>
          </td>
          </tr>
          <?php
          } // endif
          } // endwhile
          closedir($handle);
          if($content === false){
          //Keine Textdatei gefunden
          echo 'sorry, no news';
          }
          ?>
          [/COLOR]
          werden die Daten so sortiert, das die aktuellen Einträge untereinander angezeigt werden:

          2006-06-26 ...
          2006-07-08 ...

          Die Textdateien (2006-07-08-22-41-00.txt) sehen inhaltlich so aus:
          [COLOR=blue]
          <?
          $tag = '08';
          $monat = '07';
          $jahr = '2006';
          $news = 'News Headline';
          $beschreibung = 'friday, june 02, 2006';
          $link = 'www.url.de';
          ?>
          [/COLOR]
          Ich würde gerne haben das die aktuellen immer nach oben rücken, also genau umgekehrt:

          2006-07-08 ...
          2006-06-26 ...

          Wie kann ich die Sortierreihenfolge umkehren?

          Kommentar


          • #6
            alles in ein array lesen, array mit array_reverse umdrehen, fertig.
            mfg

            Kommentar


            • #7
              Guck dir mal die Userkommentare auf php.net zu readdir an.. Da ist eine Funktion trierdossier($dirname, $sortby, $sortdir)
              gruss Chris

              [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

              Kommentar

              Lädt...
              X