PHP: file manager
17/01/2012Uno script minimale che permette di visualizzare il contenuto di una directory linkando ai file presenti, specificando il tipo di file e la dimensione, una utile base per realizzare script più complessi.
Ecco il codice, tutto commentato per maggior chiarezza:
// apro la directory
$miaDir = opendir(".");
// leggo gli elementi
while($nomeFile = readdir($miaDir)) {
$dirArray[] = $nomeFile;
}
// funzione per ricavare l'estensione escludendo le directory
function trovaExt ($filenome)
{
if (!is_dir($filenome)) {
$filenome = strtolower($filenome) ;
$path_parts = pathinfo($filenome);
$exts = $path_parts['extension'];
}
else $exts = 'directory';
return $exts;
}
// chiudo la directory
closedir($miaDir);
// conto gli elementi presenti in array
$indexConta = count($dirArray);
// ordino alafabeticamente gli elementi dell'array
sort($dirArray);
// stampo a video
echo ("<h1>Contenuto directory</h1>");
echo ("<table width='100%' cellspacing='10'>
<tr>
<td>Nome file</td>
<td>Type</td>
<td>Dimensione <span>(bytes)</span></td></tr>\n");
// loop di attraversamento dell'array
for($index=0; $index < $indexConta; $index++) {
if (substr("$dirArray[$index]", 0, 1) != "."){ // non visualizzo i file nascosti
echo ("<tr><td><a href='$dirArray[$index]'>$dirArray[$index]</a></td>");
echo ("<td>");
echo (trovaExt($dirArray[$index]));
echo ("</td>");
echo ("<td>");
echo (filesize($dirArray[$index]));
echo ("</td>");
echo ("</tr>\n");
}
}
echo ("</table>\n");