Può andar bene cosi? ne capisco poco e non so dove tagliare il codice!!
<?php
$thisFileName = "index.php";
$thisDirectoryPath = $REQUEST_URI;
$thisServerName = $SERVER_NAME;
$thisPageFilesDir = "../include/";
$thisPageCssFile= $thisPageFilesDir."dirindexer.css";
$fileImgProps = array('filepath' => $thisPageFilesDir."file.gif", 'height' => '13', 'width' => '13');
$dirImageProps = array('filepath' => $thisPageFilesDir."dir.gif", 'height' => '13', 'width' => '13');
$bulletImgsArr = array('fileImg' => $fileImgProps, 'dirImg' => $dirImageProps);
$dontListFiles = array($thisFileName, $bulletImgsArr['dirImg']['filepath'], $bulletImgsArr['fileImg']['filepath'], $thisPageCssFile);
$dontListDirs = array($thisPageFilesDir, "cgi-bin", "indexerfiles");
function getThisDirName($url)
{
$afterCutOne = substr($url, 0, strrpos($url, "/"));
$afterCutTwo = substr($afterCutOne, strrpos($afterCutOne, "/") - strlen($afterCutOne) + 1);
return $afterCutTwo;
}
function isort($a,$b)
{
if(ord(strtolower($a)) == ord(strtolower($b))) return 0;
return (ord(strtolower($a))< ord(strtolower($b))) ? -1: 1;
}
function isortMultiD($a,$b)
{
if(ord(strtolower($a[count($a) - 1])) == ord(strtolower($b[count ($b) - 1])))
{
if(ord(strtolower($a[0])) == ord(strtolower($b[0]))) return 0;
return (ord(strtolower($a[0]))< ord(strtolower($b[0]))) ? -1: 1;
}
return (ord(strtolower($a[count ($a) - 1])) < ord(strtolower($b[count ($b)]))) ? -1: 1;
}
function indexdirThisDir()
{
global $bulletImgsArr;
global $dontListFiles;
global $dontListDirs;
$numHiddenDirs = 0;
$numHiddenFiles = 0;
$dirsArr = array();
$filesArr = array();
$this_dir_handle=opendir('.');
while (false!==($fileORdir = readdir($this_dir_handle)))
{
if ($fileORdir != "." && $fileORdir != "..")
{
if(is_dir($fileORdir)== false)
{
$thisFileNoShow = 0;
for ($i = 0; $i < count($dontListFiles); $i++)
{
if($fileORdir == $dontListFiles[$i])
{
$thisFileNoShow = 1;
$numHiddenFiles++;
break;
}
}
if($thisFileNoShow == 0)
{
$fileNameAndextensionArr = explode(".", $fileORdir);
array_push ($filesArr, $fileNameAndextensionArr);
}
}
else
{
$thisDirNoShow = 0;
for ($i = 0; $i < count($dontListDirs); $i++)
{
if($fileORdir == $dontListDirs[$i])
{
$thisDirNoShow = 1;
$numHiddenDirs++;
break;
}
}
if($thisDirNoShow == 0)
{
array_push ($dirsArr, $fileORdir);
}
}
}
}
closedir($this_dir_handle);
$listingHTML .= "<div id=\"thisdircontains\">Contiene ".count($dirsArr)." Sub-Directory e ".count($filesArr)." files </div>\n";
usort($dirsArr, 'isort');
usort($filesArr, 'isortMultiD');
$listingHTML .="\n<div id=\"dirslist\">\n";
for ($i = 0; $i < count($dirsArr); $i++)
{
$listingHTML .= "<a href=\"".$dirsArr[$i]."/\" class =\"dirs\"><img src=\"".$bulletImgsArr['dirImg']['filepath']."\" height=\"".$bulletImgsArr['dirImg']['height']."\" width=\"".$bulletImgsArr['dirImg']['width']."\" alt=\"file\" />".$dirsArr[$i]."</a>
\n";
}
$listingHTML .="</div>\n\n";
$listingHTML .="<div id=\"fileslist\">\n<table>\n<tr><td>file</td><td>Grandezza (kb)</td><td>Ultima Modifica</td></tr>\n";
for ($i = 0; $i < count($filesArr); $i++)
{
$filesArr[$i] = join (".", $filesArr[$i]);
$fileStats = stat($filesArr[$i]);
$fileSizeInKb = round(($fileStats[7]/1024),2);
$fileLastMod = date("H : i M dS Y", $fileStats[9]);
$listingHTML .= "<tr><td><a href=\"".$filesArr[$i]."\" class =\"files\"><img src=\"".$bulletImgsArr['fileImg']['filepath']."\" height=\"".$bulletImgsArr['fileImg']['height']."\" width=\"".$bulletImgsArr['fileImg']['width']."\" alt=\"file\" />".$filesArr[$i]."</a></td><td class=\"filedetails\">".$fileSizeInKb."</td><td class=\"filedetails\">".$fileLastMod."</td></tr> \n";
}
$listingHTML .='</table></div>';
return $listingHTML;
}
$thisDirName = getThisDirName($thisDirectoryPath);
$listingHTMLstring = indexdirThisDir();
header( "Content-type: text/html" );
print ("
<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en\" lang=\"en\" >
<head>
<title>index of $thisDirName</title>
<link rel=\"stylesheet\" type=\"text/css\" href=\"$thisPageCssFile\" />
</head>
<body>
<h1>$thisDirName</h1>
$listingHTMLstring
</body>
</html>");
?>