Tutoriaux PHP, trucs et astuce...

Contenu d'un répertoire

On peut afficher le contenu d'un répertoire avec Apache quand l'option Indexes est activée. Cependant, on préfère souvent la désactiver pour des raisons de sécurité.

Si l'option est désactivée, le script ci-dessous permet de simuler ce comportement simplement.

Note : je vous laisse trouver des images adaptées à mettre dans le répertoire /img/

Note 2 : les classes "odd" et "even" données aux lignes <li> permettent d'avoir une alternance de couleurs dans la liste de fichiers. Je vous laisse faire vous même la feuille de style qui va bien.

<ul id="fileList">
<?php
$srcDir = dirname($_SERVER["SCRIPT_FILENAME"]);
$parentDir = dirname(dirname($_SERVER["SCRIPT_NAME"]));
 
echo ('<li class="even"><img src="/img/closedFolder.gif" <a href="'.
$parentDir.'">Parent Directory</a></li>'."\n");
 
$dh = opendir($srcDir);
$nb = 0;
while ($file=readdir($dh)) {
    if ( ($file != '..') &&
         ($file != '.') &&
         ($file != '.svn') ) {
        $nb ++;
        if ($nb % 2) {
          $classe = "odd";
        }
        else {
          $classe = "even";
        }
        $currentFile = $srcDir."/".$file;
        if (is_dir($currentFile)) {
          $imgFile = "/img/closedFolder.gif";
        }
        elseif (is_file($currentFile)) {
          $imgFile = "/img/file_obj.gif";
        }
 
        $file_extension = strtolower(substr(strrchr($file,"."),1));
 
        switch( $file_extension ) {
            case "php":
            case "htm":
            case "html":
              break;
        
            default:
              echo ('<li class="'.$classe.'"><img src="'.$imgFile.
'" <a href="'.$file.'">'.$file.'</a></li>'."\n");
              break;
        }
    }
}
?>
</ul>


Ajoutez vos propres commentaires :

Nom: Email:
(optionnel)
Sujet:
Note: