Hallo zusammen,
ich setze ein PHP-Script ein, um die Ordnergröße inkl. Subdirectory + Files zu ermitteln. Dieses Script funktioniert in Punkto Genauhigkeit des Ergebnisses sowie Geschwindigkeit bzw. Ressourcen insg. sehr gut - ABER: Es muss nun möglich sein, das Script in einer PHP-Datei zu includen, so dass 2 Verzeichnisse separat behandelt werden können. Bislang gibt es nur viele Fehler, wenn ich versuche die Variablen ein 2. mal unter anderem Namen zu definieren und das Auslesen dann mit der "alten" Funktion benutze. Es wäre gut, wenn das untere Script vom Aufbau beibehalten werden könnte, da es wie oben beschrieben gute Ergebnisse liefert, allerdings nur für max. 1 Verzeichnis...
Schonmal danke für die Mühe!
Script das included wird sieht folgendermaßen aus(nach dem Includen liefert die Variable "$MemberFolderSize" alles zurück):
(Ende)
ich setze ein PHP-Script ein, um die Ordnergröße inkl. Subdirectory + Files zu ermitteln. Dieses Script funktioniert in Punkto Genauhigkeit des Ergebnisses sowie Geschwindigkeit bzw. Ressourcen insg. sehr gut - ABER: Es muss nun möglich sein, das Script in einer PHP-Datei zu includen, so dass 2 Verzeichnisse separat behandelt werden können. Bislang gibt es nur viele Fehler, wenn ich versuche die Variablen ein 2. mal unter anderem Namen zu definieren und das Auslesen dann mit der "alten" Funktion benutze. Es wäre gut, wenn das untere Script vom Aufbau beibehalten werden könnte, da es wie oben beschrieben gute Ergebnisse liefert, allerdings nur für max. 1 Verzeichnis...
Schonmal danke für die Mühe!
Script das included wird sieht folgendermaßen aus(nach dem Includen liefert die Variable "$MemberFolderSize" alles zurück):
Code:
<?php
// error_reporting (0);
$base_dir = '../../Verzeichnis_xyz;
$subdir = '';
$index = '';
$HiddenFiles = array('');
$OnlyTheseExtensions = array();
$HideTheseExtensions = array();
$pathNav = 1;
$antiLeech = 0;
$folders_first = 1;
$show_extension = 1;
$showTotalCount = 0;
$showFolderCount = 0;
$showDirSize = 1;
$posix = (stristr(php_uname(),'win')) ? 0 : 1;
function is_in_array($str, $array) {
return preg_grep('/^' . preg_quote($str, '/') . '$/i', $array);
}
if($base_dir[strlen($base_dir)-1]!='/') $base_dir.='/';
$dir = $base_dir.$subdir;
$totalBytes = 0;
function get_filesize($size) {
if($size <= 0) return '0 Bytes';
$u = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB');
for($i=5; $i>=0; $i--) {
$s=number_format($size/pow(1024, $i), 1);
if($s >= 1) return "$s $u[$i]";
}
return '<1 Bytes';
}
function good_ext($file) {
global $HideTheseExtensions, $OnlyTheseExtensions;
(!strstr(substr($file, 1), '.')) ? $ext = '' : $ext = strtolower(substr(strrchr($file, '.'),1));
if(is_in_array($ext, $HideTheseExtensions)) return 0;
if(count($OnlyTheseExtensions) > 0 && !is_in_array($ext, $OnlyTheseExtensions)) return 0;
return 1;
}
function GetFileList($path) {
global $HiddenFiles, $sortMode, $posix;
$hndl = opendir($path);
while(($file=readdir($hndl)) !== false) {
if(!$posix && is_in_array($file, $HiddenFiles)) continue;
if(!in_array($file, $HiddenFiles) && $file[0]!='.') {
if(is_file("$path/$file") && good_ext($file)) $f[]=$file;
elseif(is_dir("$path/$file")) $d[]=$file;
}
}
closedir($hndl);
@sort($d);
@sort($f);
$a=array_merge($d, $f);
if($sortMode == 'd') $a = array_reverse($a);
return $a;
}
function dir_size($dir) {
$totalsize = 0;
foreach(GetFileList($dir) as $filename) {
if(is_dir("$dir/$filename")) $totalsize += dir_size("$dir/$filename");
else $totalsize += filesize("$dir/$filename");
}
return $totalsize;
}
$file_array=GetFileList($dir);
foreach($file_array as $key => $value) {
$npart=$dir.$value;
if(is_dir($npart)) {
if($showDirSize) {
$ds = dir_size($npart);
$totalBytes += $ds;
}
else echo htmlentities('<dir>')."<br />\n";
}
elseif(is_file($npart)) {
$totalBytes+=filesize($npart);
}
}
$MemberFolderSize = "0 MB";
$MemberFolderSize2 = $totalBytes/1024/1024;
if ($totalBytes < 1024) {
$MemberFolderSize = sprintf ("%.2f Bytes",$totalBytes);
$MemberFolderSize = str_replace(".",",",$MemberFolderSize);
}
if ($totalBytes >= 1024) {
$MemberFolderSize = $totalBytes/1024;
$MemberFolderSize = sprintf ("%.2f KB",$MemberFolderSize);
$MemberFolderSize = str_replace(".",",",$MemberFolderSize);
}
if ($totalBytes >= 1048576) {
$MemberFolderSize = $totalBytes/1024/1024;
$MemberFolderSize = sprintf ("%.2f MB",$MemberFolderSize);
$MemberFolderSize = str_replace(".",",",$MemberFolderSize);
}
if ($totalBytes >= 1073741824) {
$MemberFolderSize = $totalBytes/1024/1024/1024;
$MemberFolderSize = sprintf ("%.2f GB",$MemberFolderSize);
$MemberFolderSize = str_replace(".",",",$MemberFolderSize);
}
?>
(Ende)