<?php
// ************************************
// *** dir_functions.lib.php ***
// ************************************
// -----------------------------------------------------------------------
/*
Copyright:
==============
Dieses Script wurde ursprünglich von Dennis Riehle geschrieben - Sie dürfen
das Script frei verwenden, bearbeiten und weitergeben, solange dieser Copyright
Hinweis nicht entfernt wird.
Es erfolgt keinerlei Haftung für eventuell durch dieses Script entstandene
Schäden - die Benutzung erfolgt auf eigene Gefahr.
Beschreibung:
==============
Dieses Script enthält ein paar einzelne PHP Funktionen, welche sich bei der
Arbeit auf dem lokalen File System hilfreich zeigen können.
Inhalt:
==============
- Funktion: dir2array ( string Path [ , bool .ht-Files [ , bool Dot-Files ] ] )
- Funktion: rm_dir_files ( string Path )
*/
// -----------------------------------------------------------------------
function dir2array($dirpath, $ht_files = false, $dot_files = false)
{
// Wenn das Verzeichnis nicht geöffnet werden kann, false zurück liefern
{
return false;
}
// Rückgabearray für Filenames initialisieren
// Für jeden Inhalt des Ordners...
while(($file =
readdir($handle)) !==
false)
{
// Wenn
// der Dot-File Modus aktiviert ist oder der File kein Dot-File ist
// UND
// der ht-File Modus aktiviert ist oder der File kein ht-File ist
if( ($dot_files == true OR ($file != "." AND $file != ".."))
AND
($ht_files ==
true OR !
preg_match("/(.*)\.ht(.*)/U",
$file))
)
{
// Dann den File in das Rückgabearray hinzufügen
$files[] = $file;
}
}
// Den Handle korrekt schließen
// Das Array mit den Files sortieren
// Und das Array zurückgeben
return $files;
}
// -----------------------------------------------------------------------
function rm_dir_files($dirpath)
{
// Backslashes durch normale Slashes ersetzen - multifunktional
// Wenn das letzte Zeichen in $dirpath ein Slash ist, diesen entfernen
if(substr($dirpath, -
1,
1) ==
"/")
{
$dirpath =
substr($dirpath,
0, -
1);
}
// Wenn das Verzeichnis nicht geöffnet werden kann, false zurück liefern
{
return false;
}
// Für jeden Inhalt des Ordners...
while(($file =
readdir($handle)) !==
false)
{
// Die Einträge . und .. auslassen
if($file == "." OR $file == "..")
{
continue;
}
// Ist der aktuelle Eintrag eine Datei, diese löschen
if(is_file($dirpath .
"/" .
$file))
{
unlink($dirpath .
"/" .
$file);
}
// Sonst, wenn es ein Verzeichnis ist, dieses leeren und löschen
// (per rm_dir_files())
else
{
rm_dir_files($dirpath . "/" . $file);
}
}
// Den Handle korrekt schließen
// Das Verzeichnis selber löschen
// und true zurückliefern
return true;
}
// -----------------------------------------------------------------------
/*
ENDE
*/
?>