[PHP] Funktion zum Verzeichnis auslesen

eXpli

Cadet 3rd Year
Registriert
Mai 2005
Beiträge
45
Hallo!

Bin ein neuling in sachen php und versuche mich grad an einer funktion um Verzeichnisinhalte auslesen zu können. Die ganze sache soll über ein array funktionieren. Funzt leider noch nicht so ganz... Wenn ich das array zählen will, kommt nur ne "0".

Hier mal der Code:

PHP:
function get_files($path)
{
$handle = opendir($path);
$result = array();

if ($handle)
{
  while (false !== ($file = readdir($handle))) 
  {
    if ($file != "." AND $file != "..")       
    {
      foreach ($result as $wert)
      {
      $result[] = $wert;
      }
    }      
  }
}
closedir($handle);
return $result;
}

$ausgabe = get_files('.');

echo "<br>".count($ausgabe)." Dateien wurden gefunden!";
foreach ($ausgabe as $wert)
{
echo "<br>".($wert);
}
 
PHP:
foreach ($result as $wert)

Kann ja auch nix werden, dass array ($result) ist ja schließlich leer ;) Muss wohl $file as $value heißen.
 
Habe jetzt mal geändert. Kommt aber die Fehlermeldung:

Warning: Invalid argument supplied for foreach()

PHP:
function get_files($path)
{
$handle = opendir($path);
$result = array();

if ($handle)
{
  while (false !== ($file = readdir($handle))) 
  {
    if ($file != "." AND $file != "..")       
    {
      foreach ($file as $value)
      {
      $result[] = $value;
      }
    }      
  
  }


}

closedir($handle);
return $result;
}

$ausgabe = get_files('.');

echo "<br>".count($ausgabe)." Dateien wurden gefunden!";
foreach ($ausgabe as $wert)
{
echo "<br>".($wert);
}

Hat leider an der Situation nichts geändert... :(
 
Für was die foreach-Schlaufe? Die ist nicht nötig!

PHP:
function get_files($path)
{
$handle = opendir($path);
$result = array();

if ($handle)
{
  while (false !== ($file = readdir($handle))) 
  {
    if ($file != "." AND $file != "..")       
    {
      $result[] = $file;
    }      
  }
}
closedir($handle);
return $result;
}

$ausgabe = get_files('.');

echo "<br>".count($ausgabe)." Dateien wurden gefunden!";
foreach ($ausgabe as $wert)
{
echo "<br>".($wert);
}
 
Hmm... Danke klappt jetzt!

Hab ich schonmal gesagt das ich dieses forum wegen der schnellen hilfen liebe :D

Habe aber doch noch eine frage... Wie bekomme ich es hin, dass nur die dateien und keine ordner angezeigt werden.
Wie muss ich den abfrage ändern ?
PHP:
function get_files($path)
{
$handle = opendir($path);
$result = array();

if ($handle)
{
  while (false !== ($file = readdir($handle))) 
  {
    if ($file != "." AND $file != "..")       
    {
      $result[] = $file;
    }
  }
}
closedir($handle);
return $result;
}
 
Zuletzt bearbeitet:
Habe mal ne frage zu glob funktion.
Wie bekomm ich es hin, dass ich auch ein anderes verzeichnis auslesen kann ?
Ohne das ist die glob.php in das gewünschte verzeichnis kopieren muss.

Mein Versuch:
PHP:
$dir = "Pfad";
foreach (glob($dir."*.php") as $filename)
{
   echo "<a href=$filename>$filename</a><br/>";
}

Leider klappt das nicht so wie ich möchte...
 
Habe gemerkt das ich besser mit meiner ersten funktion fahre...
Noch ein wenig dran getüftelt und jetzt isses fertig.
PHP:
function get_files($path,$ext)
{
  $handle = opendir($path);
  $result = array();
  if ($handle)
  {
    while (false !== ($file = readdir($handle))) 
    {
      if ($file != "." AND $file != ".." AND !is_dir($file))       
      {
        if (stristr($file, ".".$ext))
        {
          $result[] = $file;
        }
      }
    }
  }
  closedir($handle);
  return $result;
}

Feedback/Verbesserungsvorschläge sind natürlich erwünscht! (Macht mir nicht alles schlecht, bin nen newbie :D)
 
Zuletzt bearbeitet:
Habe ein kleines Problem mit der Funktion:

PHP:
function get_first_file($path,$ext)
{
$handle = opendir($path);
$result = array();
if ($handle)
{
  while (false !== ($file = readdir($handle))) 
  {
    if ($file != "." AND $file != ".." AND !is_dir($file))       
    {
      if (stristr($file, ".".$ext))
      {
        $result[] = $file;
      }
    }
  }
}
  closedir($handle);
  return $result[0];
}

Kann ich dem return nicht sagen das er $result[0] wiedergeben soll ?

---------------------------
edit:

Klappt doch alles habe einen anderen Fehler gehabt...
 
Zuletzt bearbeitet:
Hallo nochmal,

wollte eigentlich meine vorhandenen Funktionen bisschen ändern um nur ordner auszulesen...
Im hauptverzeichnis klappt auch alles wunderbar, bloß wenn ich dann unterordner auslesen will gibt die funktion alles aus(ordner und dateien).

PHP:
function get_folder($path)
   {
      $result = array();

      $handle = opendir($path);

      if ($handle)
      {
         while (false !== ($file = readdir($handle)))
         {
             if ($file != "." AND $file != ".." AND $file != is_file($file))
             {
               $result[] = $file;
             }
          }
      }
      
      closedir($handle);
      return $result;
   }
 
Zurück
Oben