Verzeichnis und Dateien mit PHP einlesen

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

  • Verzeichnis und Dateien mit PHP einlesen

    Hallo an alle
    Ich bin neu hier und in PHP ein Anfänger und hoffe das ihr mir helfen könnt.
    Ich habe mich in meinem Code verrannt und komme nicht mehr weiter.

    Ich möchte mittels PHP eine Datei öffnen und die innen liegenden Verzeichnisse einlesen und mir dann nur den letzen eintrag pro verzeichnis ausgeben lassen.

    Wenn ich mir nach dem "$array = file($datei);" das $array ausgeben lasse, so stehen die Files drin. Aber danach kommen nur noch fehlermeldungen. Und ich komme mit meinem Wissen nicht mehr weiter.



    PHP-Code:
    <?php
    $handle
    opendir("testhandle");
    $i 0;
    $tf 0;
    echo 
    '<table width="75%" border="1" cellpadding="0" cellspacing="0 align="center">';
    while (
    $datei readdir ($handle))
    {
     if (
    $tf %== 0)
    {echo 
    '<tr></tr>'; }
    $array file($datei);
    $array $datei;
    $arraypos 0;
    $elemente0;
    $array2 $array;
    foreach (
    $array as $elemente)
    {
        
    $laenge strlen($elemente);
        if(
    $laenge!= && $laenge!=&& $laenge!=34 && $laenge!=200 && strpos($elemente,"**",0)<1  or ($laenge==34 && strpos($elemente,"Datum",0)>0))
        {
            if( 
    strpos($elemente,"Datum:",1)>
                { 
                    
    $arraypos $elemente;
                }
            
    $array2[] = $elemente;
            
    $elemente++;
        }
    }
    $array3 $array;
    for( 
    $x=$arraypos-1;$x<$elemente;$x++) {
        
    $array3 $array2[$x];
    }
    echo 
    '<td width="50%" align="center"><h3 style="margin-bottom: 0;">'.$array3[0].'</h3>';
    echo 
    '<b><i>'.$array3[1].'</i></b> '.$array3[2] ."<br>" ;
    echo 
    '<b><i>'.$array3[3].'</i></b><br> '.$array3[4].'</br></td>';
    $tf++;
    }

    echo 
    "</table>";
    ?>
    Ich danke euch im vorraus für die hilfe.

  • #2
    Und was für Fehlermeldungen sind das?

    Code:
    $array = file($datei);
    $array = $datei;
    Was soll das bedeuten? Das letzte Element eines Arrays bekommst du mit end().

    Kommentar


    • #3
      Wie ich schon schrieb habe ich mich komplett verannt.
      Folgende Fehlermeldungen werden angezeigt:
      Warning: file(.) failed to open stream: Permission denied inWarning: Invalid argument supplied for foreach() in Notice: Uninitialized string offset: -1 in

      Notice: Uninitialized string offset: 0 in Uninitialized string offset: 1 in Uninitialized string offset: 2 in Notice: Uninitialized string offset: 3 inUninitialized string offset: 4 in

      Warning: file(..) failed to open stream: Permission denied
      Das ist ein Teil der Fehlermeldungen. Leider bekomme ich bei weitem mehr.

      Wie und wo kann ich den mit dem "end()" arbeiten?
      Zuletzt geändert von zach_1; 18.01.2012, 12:31.

      Kommentar


      • #4
        Die erste Fehlermeldung sagt doch eh schon alles. Du solltest die Fehlermeldungen auch lesen.

        Aber welchen Sinn soll diese Zeile überhaupt haben? Das Ergebnis von file() verwendest du doch eh nicht, sondern überschreibst es in der nächsten Zeile.
        Zuletzt geändert von h3ll; 02.01.2012, 10:30.

        Kommentar


        • #5
          Genau da liegt auch eines meiner Probleme.
          Ich verstehe diese Fehlermeldung nicht.
          Die Daten liegen ja vor und werden ja auch eingelesen.

          Kommentar


          • #6
            Zitat von zach_1 Beitrag anzeigen
            Genau da liegt auch eines meiner Probleme.
            Ich verstehe diese Fehlermeldung nicht.
            Die Daten liegen ja vor und werden ja auch eingelesen.
            Ich verstehe deinen Code nicht. Kannst du ihn erklären? Speziell die beiden genannten Zeilen.

            Kommentar


            • #7
              $array =file($datei);
              Hier übergebe ich den inhalt der Datei einem array!

              $array = $datei= Ich glaube dies macht das selbe. Dies ist ein versuch. Ich bin schon länger an diesem Code und versuche damit auch die Fehlermeldungen zu eliminieren. Was mir aber nicht ganz klappt. Deswegen habe ich mich ja auch in einem Forum angemeldet, da ich nicht mehr wieter weiß und auch nicht weiterkomme.

              Kommentar


              • #8
                Zitat von zach_1 Beitrag anzeigen
                $array = $datei= Ich glaube dies macht das selbe.
                Nein, wie kommst du auf sowas?

                PHP-Code:
                var_dump($datei)
                var_dump($array

                Kommentar


                • #9
                  Danke Dir.

                  Ich hätte aber noch ein frage.

                  In der Schleife
                  "foreach ($array as $elemente)"

                  bekomme ich als Fehlermeldung immer wieder
                  "Invalid argument supplied for foreach() in C:\xampp\htdocs"

                  Ich habe doch Elemente im array und zähle "$elemente" innerhalb der schleife hoch.

                  wo liegt den da mein Denkfehler?

                  Danke im vorraus

                  Kommentar


                  • #10
                    $array ist kein Array.

                    Kommentar


                    • #11
                      Nun bin ich komplett verwirrt!
                      Ich lese doch mit "readdir" die Dateien ein und schiebe diese in $array.
                      Somit sind doch mehrer Elemente in diesem?

                      Oder muß ich das einlesen verändern?

                      Kommentar


                      • #12
                        Du liest mit readdir() immer einen Dateinamen vom Typ String ein und schiebst diesen in die Variable mit dem Namen $array. Mit dem Datentyp "Array" hat das nichts zu tun. Und jetzt zitier ich mich nochmal

                        PHP-Code:
                        var_dump($datei)
                        var_dump($array

                        Kommentar


                        • #13
                          Das sind meine Ausgaben mit

                          var_dump($datei);
                          var_dump($array);
                          string [COLOR=#cc0000]'test_22001.log'[/COLOR] (length=38) boolean [COLOR=#75507b]false[/COLOR]
                          Ich drehe mich anscheinend im Kreis. Ich komme nicht dahinter
                          wie ich weitermachen muß.

                          Kommentar


                          • #14
                            Stell dein Script so um, dass es nicht per Schleife auf den Dateinamen zugreift, sondern den String den du von readir() bekommst als Dateinamen verwndet.

                            Kommentar


                            • #15
                              Aberich bekomme mehrer Dateinamen geliefert. Und diese Anzahl benötige ich doch für meinen Schleifendurchlauf. Wenn ich dieses nicht habe, so liest er mir doch nur noch einmal einen Namen ein.

                              Kommentar

                              Lädt...
                              X