unbestimmte anzahl von Datein einlesen

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

  • unbestimmte anzahl von Datein einlesen

    Hi @all

    bin seit 2 Tagen begeisterteter PHP "programmierer" Als erstes danke an alle die mir geholfen haben und an die Betreibern dieses Forums ! Klasse!

    Nun zum "Problem":

    Ich möchte gerne Datein aus einem Ordner auslesen und per Webseite Darstellen. Dies soll regelmässig (bereich 1/2 Std.) geschehen. Nebenbei :Kann ich diese Aktualisierung auch ohne CronJobs erreichen (z.B.wenn ich auf aktualisieren auf Browser drücke --> das automatisieren ??)

    Die Datein im Ordner sind druchnummeriert: 1.msg, 2.msg... usw.. die nummern erhöhen sich bei jedem Neuzugang.

    bis jetzt hab ich immer den exakten Dateinamen angegeben (z.B. 1.msg) und mit fopen geöffnet. Dies soll jedoch automatisiert und für alle Datein im Verzeichnis geschehen.
    anmerk.
    [In einem weiteren Schritt werden dann die Absenderemailadressen (plus betreff&usw) aus jeder Datei ausgelesen, und jeder Absender soll im Browser einer Zeile zugeordnet werden. Kommt eine neue mail vom gleichn absender soll diese Zeile überschrieben werden]

    das sollte dan so aussehn :

    pumuckl@meistereder.de --- Hallo ich bin da --- Rotes Haar
    Pinochio@Holzkopf.de --- Ich lüge nie --- Lange Nase
    .......

    Wenn jetzt ne neue mail von pinochio kommt soll der alte content überschrieben werden. Das Problem ist jetzt einerseits: Wie les ich die Datein nacheinander aus ? Und vorallem wie mach ich den Check ob und wo der Pinochio schon einen Entrag hat , und wie überschreib ich das ?

    (Pinochio's mails haben z.B. die namen : 1.msg, 13.msg, 18.msg usw...)

    Ich hoffe das ist verständlich...
    Greetz , bin glaub schon PHp süchtig !?!

  • #2
    Ich möchte gerne Datein aus einem Ordner auslesen und per Webseite Darstellen
    Schau dir mal folgende Funktionen an:
    opendir
    readdir
    die hummel ist ein sinnloses tier ohne zukunft!

    Kommentar


    • #3
      ok hab ich schon gemacht, aber ich seh noch nicht ganz , wie ich dann die Resultat aus readdir weiterverarbeite (das sind ja auch immer unterschiedlich viele ?)
      aber ich denke der Punkt ist noch mein kleinstes Prob. Haste auch Ideen für meine weiteren Problemchen ?
      danke U Gruss

      Kommentar


      • #4
        muss den thread mal bisschen nach vorne bringen..,. vielleicht gehts dann ja auch vorwärts !?!

        Greetz

        Kommentar


        • #5
          ganz einfach ....
          - du liest die dateien in einer schleife in ein array beispiel (das echo ersetzt du durch zB $array[] = $file
          - das neue array durchläufst du in einer weiteren schleife und liest mit file()/readfile()/fopen() die dateiinhalte ein
          - ausgabe

          eine automatisierung "light" könntest du nur bei geöffnetem browser-fenster mit einem meta-refresh erzeugen => selfHTML
          Kissolino.com

          Kommentar


          • #6
            Anstatt die Zeilen im Browser einzeln zu Manipulieren wuerde ich die Ausgabe einfach komplett neu erzeugen. Dann wuerde ich den META-Refresh weglassen und einfach nen Link machen, der wieder auf das Skript zeigt. Wenn der Benutzer mehrere Mail-Dateien hat und du nur die aktuelleste Anzeigen willst solltest du dir die Funktionen filectime, filemtime und fileatime ansehen, die finden bestimmte Zeitstempel von Dateien raus und nach denen kannst du die neuste Dateien ermitteln.

            Nebenbei: Wie willst du eigentlich die Dateien zuordnen? Woher willste wissen, dass Pinnochio 13.msg, 8.msg etc als Mail hat und wer anders zum Beispiel 7.msg?
            Wenn du dieses Problem im Griff hast ist das Auslesen der Dateien und die Anzeige nur noch Nebensache:

            PHP-Code:
            $fp opendir("verzeichnis") or die("Verzeichnis konnte nicht geoeffnet werden)";

            if(
            $fp)
            {
            while(
            $datei readdir($fp);
             {
             
            // Anweisungen
             
            }

            Kommentar


            • #7
              Hier mal der Code wie er sein sollte...

              PHP-Code:

              $mydir 
              '/home/www/htdocs/myfiles/';


              if(
              $dh opendir($mydir))
              {
                  while(
              $file readdir($dh))
                  {
                      if( (
              $file != '.') AND ($file != '..') )
                      {
                          echo(
              $file);
                      }
                  }
                  
              closedir($dh);
              }else{
                  die(
              'Verzeichniss konnte nicht geöffnet werden');

              [font=verdana] '][' .... düdeldüdel dü

              Gruss Socket
              -----
              Nein, ich programmiere kein Clan-Script für Dich, nein, auch nicht wenn Deine Schwester gut aussieht!
              [color=darkblue]
              Socket Funktionen[/color]
              [/font]

              Kommentar


              • #8
                Danke @all !!!
                Den Rest schaff ich selber, der Einstieg ist halt immer schwer. Je mehr man aber rumprobiert, desto vorwärts

                cu Darki

                Kommentar


                • #9
                  das klappt gut, aber wie mach ich das, dass die ausgabe bzw. die sortierung anderes herum läuft.
                  momentan hab ich ein paar pdf-files mit den namen
                  ji 11-2003.pdf
                  ji 12-2003.pdf
                  ji 01-2004.pdf
                  ji 02-2004.pdf
                  ....


                  in meinem ordner!
                  werden auch genau so ausgegeben!

                  jetzt möchte ich aber die reihenfolge ändern - also
                  ji 01-2004.pdf
                  ji 02-2004.pdf
                  ji 11-2003.pdf
                  ji 12-2003.pdf

                  geht das, oder sollte ich das lieber über ne db laufen lassen?!

                  danke und gruss sven

                  Kommentar


                  • #10
                    wenn du die namen in nem array hast, kannst du das sortieren

                    Kommentar


                    • #11
                      hab es mit natcasesort() probiert!
                      schmeisst mir jetzt alles richtig aus -->
                      032002.pdf
                      042002.pdf
                      052002.pdf
                      052003.pdf
                      062003.pdf

                      wie dreh ich denn jetzt die sortierung um?
                      hier mal mein script
                      PHP-Code:
                      <?php 
                      $mydir
                      =opendir('pdf/');
                      while (
                      $file readdir ($mydir)) {
                             if (
                      $file != "." && $file != ".." && $file != ""// if(!is_dir($lesen))
                             
                      {
                                 
                      $files_array[] = $file;
                             }
                      }
                      natcasesort($files_array);
                      foreach (
                      $files_array as $file){
                      echo
                      "$file\n <br>";
                      }
                      closedir($mydir);
                      ?>
                      also es soll dann
                      062003.pdf
                      052003.pdf
                      052002.pdf
                      042002.pdf
                      032002.pdf
                      da stehen!!


                      danke

                      Kommentar


                      • #12
                        RTFM

                        guckst du manual: array_reverse

                        Kommentar


                        • #13
                          uuuuuppppppppps
                          hab`s gefunden:

                          arsort!!!

                          void arsort (array array [, int sort_flags])
                          (PHP 3, PHP 4 >= 4.0b1)
                          Sortiert ein Array absteigend nach den Werten

                          Kommentar


                          • #14
                            oder so.

                            Kommentar


                            • #15
                              noch ne frage hierzu:

                              wenn ich array_reverse ODER arsort() verwende schmeisst er mir das nicht sobald nicht mehr richtig raus - ist ja auch eigentlich klar .....

                              ich krieg dann so eine, NICHT richtig, sortierte liste:
                              122003.pdf
                              112003.pdf
                              062003.pdf
                              052003.pdf
                              052002.pdf
                              042004.pdf
                              042002.pdf
                              032002.pdf
                              012004.pdf

                              stimmt ja nicht wirklich - aber wie kann ich es "stimmend" machen? geht das überhaupt?
                              danke

                              Kommentar

                              Lädt...
                              X