30. december 2004 - 00:38
Der er
10 kommentarer og 1 løsning
Website stoerrelse
Kaere eksperter, Er det muligt for mig at faa en detaljeret udskriftsvisning over alle filer og mapper paa min hjemmeside og hvad de hver isaer fylder? Jeg er i Australien og sidder ved et langsomt modem saa har ikke mulighed for at downloade hele hjemmesiden. Er der muligvis et php-script eller et ftp program der kan goere det? Paa forhaand mange tak!
Annonceindlæg fra SuperOffice
30. december 2004 - 00:47
#1
<?php $size = 0; function getSize( $path ) { global $size; if ( $d = opendir( $path ) ) { while ( $f = readdir( $d ) ) { if ( is_file( $f ) ) { $s = filesize( $path . '/' . $f ); $size += $s; echo "$path/$f " . $s . " b<br>"; } elseif ( is_dir( $f ) && $f != '.' && $f != '..' ) { getSize( "$path/$f" ); } } } } getSize( "." ); echo "<br><br><b>Total size: $size bytes</b>"; ?>
30. december 2004 - 00:49
#2
Revideret udgave der også rydder lidt op efter sig: <?php $size = 0; function getSize( $path ) { global $size; if ( $d = opendir( $path ) ) { while ( $f = readdir( $d ) ) { if ( is_file( $f ) ) { $s = filesize( $path . '/' . $f ); $size += $s; echo "$path/$f " . $s . " b<br>"; } elseif ( is_dir( $f ) && $f != '.' && $f != '..' ) { getSize( "$path/$f" ); } } closedir( $d ); } } getSize( "." ); echo "<br><br><b>Total size: $size bytes</b>"; ?>
30. december 2004 - 02:15
#3
coderdk-> Tak for din hjaelp, men tror der er en lille timeout fejl i scriptet eller saadan noget. Den viser nemlig ikke alle mapper og de mapper den viser viser den kun med faa filer. Kan det rettes? Mange tak igen!
30. december 2004 - 02:29
#4
Jeps: <?php set_time_limit( 0 ); $size = 0; function getSize( $path ) { global $size; if ( $d = opendir( $path ) ) { while ( $f = readdir( $d ) ) { if ( is_file( $f ) ) { $s = filesize( $path . '/' . $f ); $size += $s; echo "$path/$f " . $s . " b<br>"; } elseif ( is_dir( $f ) && $f != '.' && $f != '..' ) { getSize( "$path/$f" ); } } closedir( $d ); } } getSize( "." ); echo "<br><br><b>Total size: $size bytes</b>"; ?>
30. december 2004 - 07:58
#5
Den goer det samme igen, men nu brokker den sig over at den er i safemode (er hos b-one). Warning: Cannot set time limit in safe mode in /customers/sjovert.dk/sjovert.dk/httpd.www/test.php on line 3 Jeg har fundet et script der udskriver alt fra en "specified" mappe. Den gaar dog ikke dybere ned i disse mapper. Maaske noget der kunne hjaelpe? <? $dirname = "mappe/"; $dir = opendir($dirname); while(false !== ($fil = readdir($dir))) { if ($fil != "." && $fil != "..") { if (is_dir($dirname.$fil)) { $mapper[] = $fil; } if (is_file($dirname.$fil)) { $filer[] = $fil; } } } closedir($dir); sort($filer); sort($mapper); foreach($filer as $cur_file) { echo $cur_file . "<br>"; } echo "<br><br>"; foreach($mapper as $cur_dir) { echo $cur_dir . "<br>"; } ?> Mange tak for at bruge de sene nattetimer paa mig!
30. december 2004 - 16:22
#6
hej igen :) Du kan godt bruge mit, men så må du tage dit webhotel lidt ad gangen: getSize( "folder1" ); echo "<br><br><b>Total size: $size bytes</b>"; og næste gang getSize( "folder2" ); echo "<br><br><b>Total size: $size bytes</b>"; Dit webhotel forbyder dig desværre at ændre ved timeoutsettings, så jeg tror det er den eneste mulighed du har...
04. januar 2005 - 02:09
#7
Undskyld at jeg bliver ved med at sige det samme, men der er stadig noget galt. Nu tager jeg kun en mappe af gangen, men den medregner kun nogle faa filer fra mappen. Ved ikke helt hvad der er galt...
04. januar 2005 - 02:19
#8
Jeg sover i timen tror jeg, prøv med: <?php set_time_limit( 0 ); $size = 0; function getSize( $path ) { global $size; if ( $d = opendir( $path ) ) { while ( $f = readdir( $d ) ) { ( is_file( "$path/$f" ) ) { $s = filesize( "$path/$f" ); $size += $s; echo "$path/$f " . $s . " b<br>"; } elseif ( is_dir( "$path/$f" ) && $f != '.' && $f != '..' ) { getSize( "$path/$f" ); } } closedir( $d ); } } getSize( "." ); echo "<br><br><b>Total size: $size bytes</b>"; ?>
04. januar 2005 - 08:46
#9
Mange tak! Nu virker det! Det er blot en mindre detalje, men er det muligt at se stoerrelse pr. mappe? Det goer ikke noget hvis det er avanceret at tilbygge.
04. januar 2005 - 08:47
#10
Ups... Det skulle ikke have vaeret et svar... Whatever... Her er dine point...
04. januar 2005 - 10:54
#11
Yeps, det er det da: <?php set_time_limit( 0 ); $size = 0; function getSize( $path ) { global $size; if ( $d = opendir( $path ) ) { $foldersize = 0; while ( $f = readdir( $d ) ) { ( is_file( "$path/$f" ) ) { $s = filesize( "$path/$f" ); $size += $s; $foldersize += $s; echo "$path/$f " . $s . " b<br>"; } elseif ( is_dir( "$path/$f" ) && $f != '.' && $f != '..' ) { getSize( "$path/$f" ); } } echo "<br><b>Size of $path: $foldersize b</b><br>"; closedir( $d ); } } getSize( "." ); echo "<br><br><b>Total size: $size bytes</b>"; ?>
Vi tilbyder markedets bedste kurser inden for webudvikling