ERROR: An invalid directory ($dir) was entered."; exit(); } # Get clean reldir (need for file and directory URLs) $reldir = substr($absdir,strlen($scriptdir)); # Refresh PHP's (OS's ?) file and directory list cache clearstatcache(); # Read directories and files in current directory $handle = opendir($absdir); while (false !== ($filename = readdir($handle))) { # Add directory to list if (is_dir($absdir."/".$filename)==true && $filename!=".") { $dirs[] = $filename; } # Add file to list (omit this script) if (is_dir($absdir."/".$filename)==false && $filename!=$THIS_SCRIPT) { if ($SHOW_DOT || substr($filename,0,1)!=".") { $files[] = $filename; } } } # Get parent directory unless current directory # is the same as the directory of this script. $at_topdir = $absdir==$scriptdir; if (! $at_topdir) { $absparentdir=""; $subdirs=explode("/",$absdir); for($x=1;$x<=count($subdirs)-3;$x++) { $absparentdir.="/".$subdirs[$x]; } } # Get relative parent directory $relparentdir = substr($absparentdir,strlen($scriptdir)); # Sort file and directory list if ($files) { sort($files); } if ($dirs) { sort($dirs); } # Show current directory if ($reldir=="") { $showdir = "."; } else { $showdir = $reldir; } echo "Current Directory: $showdir

\n"; # Start display table echo "\n"; # List parent directory if present echo "\n"; # List directories if present echo "\n"; # List files if present echo "\n"; # Finish table echo "
\n"; if ($at_topdir) { echo " \n"; } else { echo "..\n"; } echo "\n"; if ($dirs) { foreach($dirs as $name) { # List child directory if ($name!="..") { echo "$name
\n"; } } } else { print " \n"; } echo "
\n"; if ($files) { foreach($files as $name) { # Form relative path to file by removing leading /. echo "$name
\n"; } } else { print " \n"; } echo "
\n"; ?>