Jens Willmer

Tutorials, projects, dissertations and more..

Verzeichnisstruktur auflisten in PHP

Dieses Script stammt aus meinen alten PHP-Zeite. Ich nutze es, in abgewandelter Form, zurzeit auf jwillmer.de und dachte vielleicht kann es ja auch jemand anders gebrauchen ;-)

<?php
/*
   Dieses kleine Script listet die Verzeichnisstrukturen auf und verlinkt deren Inhalte.
   Viel Spaß damit! - Gruß jEns
*/

if (!function_exists('scandir')) {
	function scandir($directory, $sorting_order=0) {
		if(!is_dir($directory)) {
			return false;
		}
		$files = array();
		$handle = opendir($directory);
		while (false !== ($filename = readdir($handle))) {
			$files[] = $filename;
		}
		closedir($handle);

		if($sorting_order == 1) {
			rsort($files);
		} else {
			sort($files);
		}
		return $files;
	}
}

function ordnerinhalt($folder='.') {
	$content = "";

	foreach(scandir($folder) as $file) {
		// Versteckte Dateien nicht anzeigen
		if($file[0] != '.') {
			if(is_dir($folder.'/'.$file)) {
				$folderArray[] = $file;
			} else {
				$fileArray[] = $file;
			}
		}
	}

	// Erst die Ordner ausgeben
	if(isset($folderArray)) {
		foreach($folderArray as $row) {
			$content .= '<b>'.$row.'</b><br />';
			// Unterordner nach rechts einrücken
			$content .= '<div style="padding-left:10px;color:#afafaf" />';
			// Rekursive Funktion
			$content .= ordnerinhalt($folder.'/'.$row);
			$content .= '</div>';
		}
	}

	// ...dann die Dateien ausgeben
	if(isset($fileArray)) {
		foreach($fileArray as $row) {
			// Dateien verlinken
			$content .= '<a href="'.$folder.'/'.$row.'">'.$row.'</a><br />';
		}
	}

	return $content;
}

echo ordnerinhalt();