The PHP code below goes through a directory/folder recursively and display the files found as HTML links on a web page.
// Configuration
$cDrivePath = "C:\\inetpub\\site3\\filelibrary\\"; // Be sure to include slash at the end!
$webPath = "/filelibrary/"; // Be sure to include slash at the end!
// End configuration
function cleanUpFileName($fName, $removeThisString) {
$ret = $fName;
$ret = str_replace($removeThisString, "", $ret);
$ret = str_replace("\\", " > ", $ret);
return $ret;
}
function printDirContents(
$path, // This is the HDD path to recurse into
$cDrivePath, // Always carry the $cDrivePath value; used for beautifying text
$webPath // Always carry the $webPath value; used for beautifying text
) {
// Make sure we have a trailing slash and asterix
$path = rtrim($path, "\\") . "\\*";
// Make an array to hold all the sub-directories
$dirs = glob($path, GLOB_ONLYDIR);
// Make an array to hold all the files
$files = glob($path); //This contains both sub-directories and files
$files = array_diff($files, $dirs); // Remove sub-directories from the array
// Print files
foreach ($files as &$f) {
$fnDownload = str_replace($cDrivePath, "", $f);
$fnDisplay = cleanUpFileName($f, str_replace("*","",$path));
print("[a href='".$webPath.$fnDownload."']".$fnDisplay."[/a]");
}
// Recurse into sub-directories
foreach ($dirs as &$d) {
print("[h3]".(cleanUpFileName($d, $cDrivePath))."[/h3]";
// Print folder
printDirContents($d, $cDrivePath, $webPath);
}
}
$displayArray = printDirContents($cDrivePath, $cDrivePath, $webPath);
