Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit array

Einklappen

Neue Werbung 2019

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

  • Problem mit array

    Hallo,
    ich habe ein problem mit dem kleinen Skript, welches ich geschrieben habe. Das Skript soll alles Verzeichnisse durchsuchen und die dateinamen in ein array schreiben. Geb ich die ne direkte ausgabe an mit echo, funktioniert es ohne Probleme. Nur das Array ist immer leer. Leider sind meine PHP Kenntnisse nicht so gut, aber jeder hat mal angefangen . Ich möchte das Skript dann noch erweitern mit filtern und so weiter. Über Tipps wäre ich sehr dankbar.

    PHP-Code:
    <?php 

    get_dir
    ($dir="./");     //Zielverzeichnis oeffnen
    $datei_array = Array(); //Datei Array anlegen

    function get_dir ($dir) {
      
    $fp=opendir($dir);
      while(
    $datei=readdir($fp)) {
       if (
    is_dir("$dir/$datei") && $datei!="." && $datei!="..") {                                                                                         
        
    get_dir("$dir/$datei");
        }
       else {
        
    array_push($datei_array,$datei);
        }
      }
     
    closedir($fp);
     return(
    $datei_array);
    }
    print_r($datei_array);
    ?>


  • #2
    Hi.

    Schau nochmal bitte, wie man mit Arrays arbeitet:

    PHP - array - Array-Funktionen

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Dein Array, dass du in derFunktion ansprichst, ist nicht das Array, welches du außerhalb angelegt hast.

      probier mal sowas. Habs allerdings nicht getestet
      PHP-Code:
      <?php
      $datei_array 
      = array();
      get_dir($dir="./"$datei_array);     //Zielverzeichnis oeffnen

      function get_dir ($dir, &$array) {
          
      $fp=opendir($dir);
          while(
      $datei=readdir($fp)) {
          if (
      is_dir("$dir/$datei") && $datei!="." && $datei!="..") {
              
      get_dir("$dir/$datei"$array);
          } else {
              
      array_push($array,$datei);
          }
        }
       
      closedir($fp);
       return(
      $array);
      }
      print_r($datei_array);
      ?>
      "My software never has bugs, it just develops random features."
      "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

      Kommentar


      • #4
        Du hast
        - erst das Array zusammengestellt,
        - dann das Array auf ein leeres Array gesetzt
        - dann ausgegeben
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Zitat von nikosch Beitrag anzeigen
          Du hast
          - erst das Array zusammengestellt,
          - dann das Array auf ein leeres Array gesetzt
          - dann ausgegeben
          Das Array das er in der Funktion verwendet ist doch nicht das gleiche was er zurück gibt...
          Oder liege ich jetzt falsch?
          Das müsste doch eher sein:
          - erst das Array zusammengestellt, und ins Nirvana zurückgegeben
          - dann leeres Array erstellt
          - leeres Array ausgegeben

          Nachtrag:
          Der Return ist wohl unnötig...
          "My software never has bugs, it just develops random features."
          "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

          Kommentar


          • #6
            LOL, stimmt, der return wird auch gar nicht zugewiesen..
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              ...deswegen würde ich gerne nochmal auf meinen Link hinweisen! Sind meiner Meinung nach Basis Fehler.

              Wolf29
              while (!asleep()) sheep++;

              Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

              Kommentar


              • #8
                Entscheidend wäre aber eher ein Link auf die Verwendung von Funktionen, Parametern und Return-Werten.
                --

                „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                --

                Kommentar


                • #9
                  Hm...ja, da hast du recht. Aber den Link zum Verständnis für Arrays scheint auch benötigt zu werden. Hier nochmal ein Link zum Thema Funktion (usw.):

                  PHP: Funktionen - HTMLWorld

                  Wolf29
                  while (!asleep()) sheep++;

                  Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

                  Kommentar


                  • #10
                    Vielen Dank für große Hilfe. Hab das Problem nu gelöst. Werd das Skript noch etwas erweitern und dann hier nochmal posten. Schönen 1.Mai wünsch ich allen.

                    Kommentar

                    Lädt...
                    X