Ik heb enkele jaren geleden dit geschreven om alle bestanden van een map weer te geven:
Code:
<?php
function bestandsgrootte($grootte){
$i=0;
if ($grootte < 1) {
$grootte = "0";
}
$iec = array("B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB");
while (($grootte/1024)>1) {
$grootte = $grootte/1024;
$i++;
}
if ($i > 1) {
return substr($grootte,0,strpos($grootte,'.')+3). " " . $iec[$i];
} else {
if ($i == 0) {
return $grootte . " " . $iec[$i];
} else {
return substr($grootte,0,strpos($grootte,'.')). " " . $iec[$i];
}
}
}
$bestanden = array();
$bestandstypes = array();
$bestandsgroottesbytes = array();
$bestandsgroottes = array();
$bestandsdata = array();
$handle=opendir('.');
while (false!==($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file != "index.php") {
if (!is_dir($file)) {
$bestandsgroottebyte = filesize($file);
$bestandsgrootte = bestandsgrootte($bestandsgroottebyte);
if (eregi("\.",substr($file,-4))) {
$plaats_punt = strpos(substr($file,-4),".");
$plaats_punt = -3 + $plaats_punt;
$bestandstype = substr($file,$plaats_punt);
} else {
$bestandstype = "";
}
} else {
$bestandsgrootte = "";
$bestandstype = "map";
}
$bestandsdatum = date ("Y\-m\-d H\:i\:s", filemtime($file));
array_push($bestanden, $file);
array_push($bestandstypes, $bestandstype);
array_push($bestandsgroottes, $bestandsgrootte);
array_push($bestandsgroottesbytes, $bestandsgroottebyte);
array_push($bestandsdata, $bestandsdatum);
}
}
closedir($handle);
if (isset($_GET['sorteer'])) {
$sorteer = $_GET['sorteer'];
} else {
$sorteer = "naam";
}
switch ($sorteer) {
case "naam":
$sorteerrij = $bestanden;
$stijgend = true;
break;
case "type":
$sorteerrij = $bestandstypes;
$stijgend = true;
break;
case "grootte":
$sorteerrij = $bestandsgroottesbytes;
$stijgend = true;
break;
case "datum":
$sorteerrij = $bestandsdata;
$stijgend = true;
break;
case "naam_r":
$sorteerrij = $bestanden;
$stijgend = false;
break;
case "type_r":
$sorteerrij = $bestandstypes;
$stijgend = false;
break;
case "grootte_r":
$sorteerrij = $bestandsgroottesbytes;
$stijgend = false;
break;
case "datum_r":
$sorteerrij = $bestandsdata;
$stijgend = false;
break;
}
if ($stijgend == true) {
asort ($sorteerrij);
} else {
arsort ($sorteerrij);
}
reset ($sorteerrij);
while (list ($i,$val) = each ($sorteerrij)) {
echo ("\n <tr>");
echo ("\n <td class=\"td2\" align=\"left\"><a href=\"$bestanden[$i]\" title=\"Download "$bestanden[$i]"\">$bestanden[$i]</a></td>");
echo ("\n <td class=\"td2\" align=\"right\">$bestandstypes[$i]</td>");
echo ("\n <td class=\"td2\" align=\"right\">$bestandsgroottes[$i]</td>");
echo ("\n <td class=\"td2\" align=\"right\">$bestandsdata[$i]</td>");
echo ("\n </tr>");
}
echo ("\n </table>");
?>
En dat werkt tot op de dag van vandaag perfect (getest op de Scoutnet-server).
To