[HTML] "Array"

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

  • [HTML] "Array"

    Hallo,

    ich bin mir nicht ganz sicher, ob es ein HTML oder PHP Problem ist, aber da mir der PHP-Code keine Fehler anzeigt und nur die Anzeige im HTML nicht stimmt, gehe ich mal von Ersterem aus.

    Also, folgendes wollte ich machen:

    Die Datei /root/bilder.php soll alle Bilddateien (es werden nur Bilder sein, falls das wichtig ist) aus dem Verzeichnis /root/2/ auslesen (wenn man /root/bilder.php?action=2 aufruft) und diese dann in einer HTML-Datei wiedergeben, die Teil eines Forensystems (wBB2) ist.

    Bisher sieht mein Code so aus:

    PHP-Code:
    if ($action == '2') {

      function 
    getImagesFromPath($path)
      {
        
    $result = array();

        if(
    substr($path, -1) != "/"$path .= "/";

        
    $handle opendir('2'); 

        while (
    $file readdir ($handle)) 
        { 
           if (
    $file != "." && $file != "..")
           { 
              if (! 
    is_dir($path $file))
              {
                
    $sub substr($file, -4);
                if (
    $sub == ".png" || $sub == ".jpg" || $sub == ".gif" || $sub == ".bmp")
                   
    $result[] = $path $file;
              }
           } 
        }

        return 
    $result;
      }

      
    $fileNames getImagesFromPath("./2");


    Soweit, wie gesagt, keine Fehler, wenn ich dann allerdings in das Template $fileNames schreibe, zeigt mir die Seite nur das Wort "Array" an und nicht etwa die Bilder, die in dem genannten Ordner sind.

    Woran könnte das liegen?

    Ich bin allerdings kein Programmierer, verstehe also nicht allzu viel von diesen Sachen, in so fern sollte die Antwort für einen Unwissenden wie mich bitte verständlich sein.

  • #2
    Re: [HTML] "Array"

    Original geschrieben von Symmetry
    ich bin mir nicht ganz sicher, ob es ein HTML oder PHP Problem ist, aber da mir der PHP-Code keine Fehler anzeigt und nur die Anzeige im HTML nicht stimmt, gehe ich mal von Ersterem aus.
    Falsch geraten. *verschieb*
    Soweit, wie gesagt, keine Fehler, wenn ich dann allerdings in das Template $fileNames schreibe, zeigt mir die Seite nur das Wort "Array" an und nicht etwa die Bilder, die in dem genannten Ordner sind.

    Woran könnte das liegen?
    Daran, dass man diese Ausgabe immer erhält, wenn man versucht ein Array mittels echo oder print auszugeben.

    Wenn die einzelnen Elemente eines Arrays ausgegeben werden sollen, dann durchläuft man das Array in einer Schleife - und gibt dabei jedes Element einzeln aus.

    In deinem Falle, wo du das ganze an ein Template-System übergeben willst, wäre es - so dieses keine eigene Syntax für das Ausgeben von Arrays definiert - wohl das einfachste, dieses Durchlaufen schon vorher zu machen, und die einzelnen Elemente zu einem String zusammenzufügen - und dann diesen String ans Template zu übergeben.


    Ganz ohne Grundlagenkenntnisse geht's aber nicht - also lies im Manual bzgl. dem Umgang mit Arrays und über Schleifen nach.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Ich dachte, dass der Code den Durchlauf mit dieser while-Schleife schon macht?

      Ansonsten ist mir das aber irgendwie zu hoch, da ich das Problem nicht wirklich verstehe.

      Ich hatte vorher einen anderen Code, von einem Bekannten, der hat mir allerdings nur ein Bild angezeigt, egal wie viele im Ordner waren:

      PHP-Code:
      if ($action == '3') {

      $verz opendir('3');
      while(
      $file readdir($verz)) 
      {  
      $info = @getimagesize($file);
      if(
      $file != "." && $file != ".." &&  !is_dir($file) && $file != "buttonbase.php"
      {  
      $buttons "<img src=\"3/".$file."\" border=\"0\">";
      }
      }
      closedir($verz);
      }

      eval(
      "\$tpl->output(\"".$tpl->get("buttonbase")."\");");

      ?> 
      Also ich wäre jemandem, der mir das irgendwie zu Ende schreiben kann, mehr als verbunden.
      Mir liegen Programmiersprachen einfach nicht.

      Kommentar


      • #4
        Original geschrieben von Symmetry
        Ich dachte, dass der Code den Durchlauf mit dieser while-Schleife schon macht?
        Nein, in dieser Schleife wird das Array ja erst befüllt.


        Aber statt dort ein Array zu befüllen, könntest du natürlich auch gleich dort neue Inhalte immer an eine schon bestehende String-Variable anhängen, ganz simpel mit dem Operator zur Zeichenkettenverknüpfung.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Macht dann nicht dieser Code das ?

          PHP-Code:
          $verz opendir('1');
          while(
          $file readdir($verz)) 
          {  
          $info = @getimagesize($file);
          $buttons "<img src=\"1/".$file."\" border=\"0\">"
          Nur hört der halt nach der ersten Grafik auf.
          Muss das Ding dann die Schleife nochmal durchlaufen, damit es geht? Wenn ja, warum tut er es nicht (ich verstehe nicht mal, was die Bedigung ist, dass er ihn durchläuft)?

          Kommentar


          • #6
            Original geschrieben von Symmetry
            Macht dann nicht dieser Code das ?
            Ja, aber er überschreibt die Variable jedes Mal mit einem neuen Bild, anstatt es an sie anzuhängen.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Und wie sage ich dem Ding, dass es das anhängen soll?

              Ich weiß, Eigeninitiative ist gefragt, allerdings sitze ich schon den ganzen Tag an dem Code und komme nicht weiter, da das für mich nur spanische Dörfer sind. Wenn es dann noch nur an einer so anscheinend einfachen Sache liegt, dann würde ich höflichst um das letzte Puzzleteil bitten.

              Kommentar


              • #8
                http://www.php.net/manual/de/languag...ors.string.php
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Aus einem mir unbekannten Grund funktioniert es jetzt.

                  Danke in so fern für die Hilfe.

                  Ich bin definitiv darin bestärkt mich nie mehr mit dem Dämon "Computer" zu beschäftigen.

                  Kommentar

                  Lädt...
                  X