Scripts
Browse door directory
Met dit bestand kun je eenvoudig bestanden weergeven uit de map waar deze in staat, en alle bijbehorende submappen. Plaatjes worden direct (zonder verkleining) weergegeven. Mappen als een link om naar een volgende pagina te gaan. overige bestanden door een hyperlink. Configuratie totaal niet nodig. De functie (tweede code-deel) geeft een array met daarin alle namen, gesplitst in 'mappen', 'plaatjes' en 'overig'
browse-door-directory
--- LOS Bestand ---
[code]
<html>
<head>
<title>Weergave plaatjes en bestanden</title>
</head>
<body>
<?php
// Benodigde variabelen
$image_types = array("jpg","gif","bmp","png","jpeg");
$mappen_reeks = "";
$plaatjes_reeks = "";
$overige_reeks = "";
if (!empty($_GET['mapnaam']))
{
$mapnaam = $_GET['mapnaam'];
}
else
{
$mapnaam = "/";
};
// Voorkom dat mensen 'boven' de huidige map kunnen kijken.
if ( ereg('..',$mapnaam) || ereg('//',$mapnaam) )
{
$mapnaam = "/";
};
// Map inhoud ophalen en tonen
$map = opendir(".{$mapnaam}");
while (false!==($bestand = readdir($map))) {
if ($bestand != "." && $bestand != "..") {
// Wat is de extensie?
$ext = explode('.',$bestand);
$extl = sizeof($ext) - 1;
$ext = strtolower($ext[$extl]);
if ( !ereg('.',$bestand) )
{
// Gaat om een map
$mappen_reeks .= "<a href=\"index.php?mapnaam={$mapnaam}{$bestand}/\">{$bestand}</a><br />";
}
elseif ( in_array($ext,$image_types) )
{
// Plaatje
$plaatjes_reeks .= "<img src=\".{$mapnaam}{$bestand}\" alt=\"Plaatje\" /><br />\n";
}
else
{
// Overig
$overig_reeks .= "<a href=\".{$mapnaam}/{$bestand}\">{$bestand}</a><br />";
}
}
}
if ( $mappen_reeks != "" )
{
echo ("<h1>Mappen</h1>");
echo ($mappen_reeks);
}
if ( $plaatjes_reeks != "" )
{
echo ("<h1>Plaatjes</h1>");
echo ($plaatjes_reeks);
}
if ( $overig_reeks != "" )
{
echo ("<h1>Overig</h1>");
echo ($overig_reeks);
}
closedir($map);
?>
</body>
</html>
[/code]
--- Functie ---
<?php
function inhoud_weergave($mapnaam)
{
// Benodigde variabelen
$image_types = array('jpg','gif','bmp','png','jpeg');
$namen = '';
$map_aantal = 0;
$plaatje_aantal = 0;
$overig_aantal = 0;
// Voorkom dat mensen 'boven' de huidige map kunnen kijken.
if ( empty($mapnaam) || strstr($mapnaam,'..') || strstr($mapnaam,'//') )
{
$mapnaam = '/';
};
// Map inhoud ophalen en tonen
$map = opendir(".{$mapnaam}");
while (false!==($bestand = readdir($map))) {
if ($bestand != "." && $bestand != "..") {
// Wat is de extensie?
$ext = explode('.',$bestand);
$extl = sizeof($ext) - 1;
$ext = strtolower($ext[$extl]);
if ( is_dir($bestand) )
{
// Gaat om een map
$namen['map'][$map_aantal] = $bestand;
$map_aantal++;
}
elseif ( in_array($ext,$image_types) )
{
// Plaatje
$namen['plaatje'][$plaatje_aantal] = $bestand;
$plaatje_aantal++;
}
else
{
// Overig
$namen['overig'][$overig_aantal] = $bestand;
$overig_aantal++;
}
}
}
closedir($map);
sort($namen['map']);
sort($namen['plaatje']);
sort($namen['overig']);
return $namen;
}
?>
Reacties
0