<?php

  // Deze hebben we nodig, hier zetten we alle data in.
  $output = Array ();




  // We maken de functie get_data.
  function get_data ($from = "./*", $link = false)
  {
     // We halen $output in de functie, want die hebben we nodig.
     global $output;
      
     // We halen alle bestandnamen + mappen uit de opgegeven map.
     foreach (glob ($from) as $name) 
     {
        // We kijken of we een dir te pakken hebben.
        if (is_dir ($name))
        {
           // Zo ja, dan voeren we de functie weer uit, zodat we de data in de sub-mappen ook te pakken krijgen
           get_data ($name . "/*", $link);
        }
        else if (!in_array ($name, $output))
        {   
           // We hebben geen map te pakken, we kijken of we er een link van moeten maken of niet.
           if ($link)
           {
              // We moeten er een link van maken, dus voegen we er een link aan de array toe.
              $output[] = "<a href=\"" . $name . "\" alt=\"" . $name . " met size '" . filesize ($name) . "'\">$name</a>";
           }
           else
           {
              // We hoeven er geen link van te maken, dus voegen we hem toe aan de array zonder link.
              $output[] = $name;
           }
        }
     }
     
     // We stuuren de array terug.
     return $output;
  }



// We echo'en <pre>, zodat de array mooi en leesbaar word.
echo "<pre>";

// Voorbeeld 1 (maakt geen link naar het bestand):
print_r (get_data ("./*"));

// Voorbeeld 2 (maakt wel een link naar het bestand):
print_r (get_data ("./*", true));

// We beëindigen <pre> weer.
echo "</pre>";
?> 