1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| /* liste des dossiers */
function list_dir($base, $cur, $level=0) {
global $PHP_SELF, $BASE, $order, $asc;
if ($dir = opendir($base)) {
$tab = array();
while($entry = readdir($dir)) {
if(is_dir($base."/".$entry) && !in_array($entry, array(".",".."))) {
$tab[] = addScheme($entry, $base, 'dir');
}
}
/* tri */
usort($tab,"cmp_name");
foreach($tab as $elem) {
$entry = $elem['name'];
/* chemin relatif à la racine */
$file = $base."/".$entry;
/* marge gauche */
for($i=1; $i<=(4*$level); $i++) {
echo " ";
}
/* on saute une ligne tout les 20 caracteres */
$entry=wordwrap($entry, 20, "\n", 1);
/* l'entrée est-elle le dossier courant */
if($file == $cur) {
echo "<img src=\"\image\icone\dir-open.gif\" /> $entry<br />\n";
} else {
echo "<img src=\"\image\icone\dir-close.gif\" /> <a href=\"$PHP_SELF?dir=". rawurlencode($file) ."&order=$order&asc=$asc\">$entry</a><br />\n";
}
/* l'entrée est-elle dans la branche dont le dossier courant est la feuille */
if(ereg($file."/",$cur."/")) {
list_dir($file, $cur, $level+1);
}
}
closedir($dir);
}
} |
Partager