hi stasal
Ich hab da mal was nettes geschrieben:
die Funktion: read_dir hat folgende Parameter:
$array,
$path,
$search_ext = "",
$sub_dir = false
$array ... gibt an in welches Array gespeichert werden soll
in diesem Fall ... $path_array
$path ... gibt den Pfad an in dem er suchen soll
in dem Fall ... das aktuelle Verzeichnis
$search_ext ... nach was soll gesucht werden. Hier wird ein Rex verwendet
OPTIONAL default finde alles
in diesem Fall sucht er nach jpg, jpeg, gif und png
$sub_dir ... gibt an ob auch in untergeordneten Verzeichnisen gesucht werden
OPTIONAL default NEIN
Nach dem er das Verzeichnis ausgelesen hat, wird eine Summe aus allen Files gebildet.
Damit das ganze auch ein Format hat, wird mittels der Funktion
fsize das Ergebniss formatiert.
Die 2 werte sind unterschiedlich, da ja 1 kB ned 1000 Bytes sind sonder
1024
Code:
<?
$path_todo = getcwd();
$path_array = array();
$todo_search = "#(.+).[jpg|gif|png|jpeg]#";
read_dir("path_array", $path_todo, $todo_search);
sort ($path_array);
Foreach ($path_array AS $key => $val) {
$total_size += $val[2];
}
echo $total_size." - ".fsize($total_size);
echo "fertig";
function fsize($size) {
$a = array("B", "KB", "MB", "GB", "TB", "PB");
$pos = 0;
while ($size >= 1024) {
$size /= 1024;
$pos++;
}
return round($size,2)." ".$a[$pos];
}
function read_dir ($array, $path, $search_ext = "", $sub_dir = false) {
global $$array, $Sys_Root_Absolute;
$dir_path = dir($path);
while($dir_entry = $dir_path->read()) {
$dir_type = filetype($path."/".$dir_entry);
if ($dir_type == "dir" && $sub_dir) {
if ($dir_entry != "." && $dir_entry != "..") {
read_dir ($$array, "$path$dir_entry/", $search_ext, $sub_dir);
}
}else{
if (strlen($search_ext)) {
if (preg_match($search_ext, $dir_entry)) {
// file-gefunden
array_push($$array, array($path,$dir_entry, filesize($dir_entry)));
}
} else {
if ($dir_entry != "." && $dir_entry != "..") {
array_push($$array, array($path,$dir_entry));
}
}
}
}
$dir_path->close();
}
?>
Wenns fragen gibt einfach melden.