Verzeichnis und Dateien mit PHP einlesen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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().

    Comment


    • #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?
      Last edited by zach_1; 18-01-2012, 11:31.

      Comment


      • #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.
        Last edited by h3ll; 02-01-2012, 09:30.

        Comment


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

          Comment


          • #6
            Originally posted by zach_1 View Post
            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.

            Comment


            • #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.

              Comment


              • #8
                Originally posted by zach_1 View Post
                $array = $datei= Ich glaube dies macht das selbe.
                Nein, wie kommst du auf sowas?

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

                Comment


                • #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

                  Comment


                  • #10
                    $array ist kein Array.

                    Comment


                    • #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?

                      Comment


                      • #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

                        Comment


                        • #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ß.

                          Comment


                          • #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.

                            Comment


                            • #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.

                              Comment

                              Working...
                              X