Sep
12
Verzeichnis rekursiv auslesen (mit Dateigröße)
Friday, 12. September 2008 17:07
Ein Verzeichnis rekursiv mit PHP auszulesen bedarf es nicht viel.
Hier habe ich ein beispiel mit lediglich 3 kleinen Funktionen.
- Die Erste gibt eine lesbare Dateigröße aus
- Die zweite Funktion definiert, wie die Dateien angezeigt werden sollen
- Die Dritte Liest die Ordner aus und ruft gegebenenfalls Sich slebst mit neuem Parameter auf
function byteConvert($bytes){ $symbol = array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'); $exp = 0; $converted_value = 0; if( $bytes > 0 ){ $exp = floor( log($bytes)/log(1000) ); $converted_value = ( $bytes/pow(1000,floor($exp)) ); } return sprintf( '%.2f '.$symbol[$exp], $converted_value ); } function file_detail($dir,$name){ $stat = @stat($dir.$name); #print_r($stat); $returner .= "<td>$name</td>"; $returner .= "<td>".byteConvert($stat['size'])."</td>"; return $returner; } function rec_scan_dir($dir){ $returner = "<table>\n"; $files = scandir( $dir ); sort($files); foreach($files as $file){ if( $file!="." && $file!=".."){ if(is_dir($dir.$file)){ $returner .= "<tr><td class='dir'>$file</td></tr>\n"; $returner .= "<tr><td><div class='dir_pad' style='padding-left:10px;'>".rec_scan_dir($dir.$file)."</div></td></tr>\n"; } else{ $returner .= "<tr>"; $returner .= file_detail($dir,$file); $returner .= "</tr>\n"; } } } $returner .= "</table>\n"; return $returner; } $dir = './files/'; echo "<h1>$dir</h1>"; print_r(rec_scan_dir($dir));
Thema: PHP | Kommentare (0) | Autor: Simon
Subscribe by Email
Subscribe by Feed