|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
FONCTION RÉCURSIVE POUR GÉNÉRER UNE ARBORESCENCE DE FICHIERS AVEC FILTRES
Information sur la source
Description
Cette fonction vas générer une arborescence des fichiers & dossiers de manière graphique avec la possibilité d'optimiser par des filtres l'affichage
Source
- <?php
- /* ************************************************************************ */
- // function listingDir par Nans Stefanini
- // http://nans.stefanini.free.fr
- // Fonction récursive permettant de générer une arborescence de fichiers
- // avec filtres
- // $path : chemin du dossier à lister
- // $ext_interdites : tableau des extensions interdites
- // $dir_interdits : tableau des noms de dossiers interdits
- // $file_interdits : tableau des fichiers interdits
- // $profondeur : nombre de dossier à explorer par rapport à $path
- // $profdep = 0 : ne pas toucher, valeur de départ
- /* ************************************************************************ */
-
- function listingDir($path, $ext_interdites, $dir_interdits , $file_interdits, $profondeur=9999, $profdep=0 ) {
-
-
- if (is_dir($path)) {
- if (substr($path, -1, 1) !='/') {
- $path .= '/';
- echo $path.'<br>';
- }
- }
-
- echo 'profdep='.$profdep.'<br />';
- //on compte le nb de / au lancement
- if ($profdep == 0) {
- $profdep= substr_count($path, '/');
- }
-
- if (is_dir($path)) {
- //on definit le nom du dossier à afficher
- if (substr($path, -1, 1) =='/') { //si ça finit par un slash on le vire pr avoir le nom du dossier
- $dirnam = substr($path, 0,(strlen($path)-1)); //on vire le dernier shash
- } else {
- $dirnam = substr($path, 0,(strlen($path))); //on garde le nom du dossier comme ça
- $path.= '/'; //et on ajoute un slash a la fin du path pr avoir d chemins ok
- }
- $dirnam = strrchr($dirnam, "/"); // on recup le nom du dernier dossier
- $dirnam = str_replace (array('/'), array(''), $dirnam); // on vire le 1er shash
- //echo 'yo='.$dirnam ;
- //echo '<br />';
-
- if(!in_array($dirnam, $dir_interdits)) { //on verrifie que le dossier fait pas partie des interdits
-
- echo '<strong><a href="#" onclick="if (document.getElementById(\'level'.$profondeur.$dirnam.'\').style.display!=\'block\') {document.getElementById(\'level'.$profondeur.$dirnam.'\').style.display=\'block\';} else { document.getElementById(\'level'.$profondeur.$dirnam.'\').style.display=\'none\' }">- '.$dirnam.'</a></strong><br /><div id="level'.$profondeur.$dirnam.'" style=" margin-left: 15px; display: none;">'."\n";
- if ($dh = @opendir($path)) {
- while (($file = readdir($dh)) !== false) {
- if (($file != '.') && ($file != '..') && ($file != '...')) {
-
- if (is_dir($path . $file)) {
- if (substr_count($path . $file, '/')-$profdep < $profondeur) {
-
-
- listingDir(($path . $file . '/'), $ext_interdites, $dir_interdits, $file_interdits, $profondeur, $profdep);
-
-
- }
- } else {
- //on chope l'extension et le nom du fichier
- $tabfile = explode('.', $file);
- $nomfile = $tabfile[0];
- $extfi = $tabfile[1];
-
- if(!in_array($extfi, $ext_interdites) && !in_array($file, $file_interdits)) { //on verif les extensions & fichiers interdits
- echo '<a href="'.$path . $file.'">'. $file.'</a><br>'."\n";
- }
- }
- }
- }
- closedir($dh);
-
- echo '</div>'."\n";
- }
- }
- }elseif (is_file($path)) {
- echo $path.'<br>';
- }
-
-
- }
-
- //ex
- listingDir('./dossier/', array('txt', 'sql', 'fla'), array('css', 'admin'), array('config.php', 'config.inc.php', 'desabo.html', 'formulaire.html'), 1);
-
- ?>
<?php
/* ************************************************************************ */
// function listingDir par Nans Stefanini
// http://nans.stefanini.free.fr
// Fonction récursive permettant de générer une arborescence de fichiers
// avec filtres
// $path : chemin du dossier à lister
// $ext_interdites : tableau des extensions interdites
// $dir_interdits : tableau des noms de dossiers interdits
// $file_interdits : tableau des fichiers interdits
// $profondeur : nombre de dossier à explorer par rapport à $path
// $profdep = 0 : ne pas toucher, valeur de départ
/* ************************************************************************ */
function listingDir($path, $ext_interdites, $dir_interdits , $file_interdits, $profondeur=9999, $profdep=0 ) {
if (is_dir($path)) {
if (substr($path, -1, 1) !='/') {
$path .= '/';
echo $path.'<br>';
}
}
echo 'profdep='.$profdep.'<br />';
//on compte le nb de / au lancement
if ($profdep == 0) {
$profdep= substr_count($path, '/');
}
if (is_dir($path)) {
//on definit le nom du dossier à afficher
if (substr($path, -1, 1) =='/') { //si ça finit par un slash on le vire pr avoir le nom du dossier
$dirnam = substr($path, 0,(strlen($path)-1)); //on vire le dernier shash
} else {
$dirnam = substr($path, 0,(strlen($path))); //on garde le nom du dossier comme ça
$path.= '/'; //et on ajoute un slash a la fin du path pr avoir d chemins ok
}
$dirnam = strrchr($dirnam, "/"); // on recup le nom du dernier dossier
$dirnam = str_replace (array('/'), array(''), $dirnam); // on vire le 1er shash
//echo 'yo='.$dirnam ;
//echo '<br />';
if(!in_array($dirnam, $dir_interdits)) { //on verrifie que le dossier fait pas partie des interdits
echo '<strong><a href="#" onclick="if (document.getElementById(\'level'.$profondeur.$dirnam.'\').style.display!=\'block\') {document.getElementById(\'level'.$profondeur.$dirnam.'\').style.display=\'block\';} else { document.getElementById(\'level'.$profondeur.$dirnam.'\').style.display=\'none\' }">- '.$dirnam.'</a></strong><br /><div id="level'.$profondeur.$dirnam.'" style=" margin-left: 15px; display: none;">'."\n";
if ($dh = @opendir($path)) {
while (($file = readdir($dh)) !== false) {
if (($file != '.') && ($file != '..') && ($file != '...')) {
if (is_dir($path . $file)) {
if (substr_count($path . $file, '/')-$profdep < $profondeur) {
listingDir(($path . $file . '/'), $ext_interdites, $dir_interdits, $file_interdits, $profondeur, $profdep);
}
} else {
//on chope l'extension et le nom du fichier
$tabfile = explode('.', $file);
$nomfile = $tabfile[0];
$extfi = $tabfile[1];
if(!in_array($extfi, $ext_interdites) && !in_array($file, $file_interdits)) { //on verif les extensions & fichiers interdits
echo '<a href="'.$path . $file.'">'. $file.'</a><br>'."\n";
}
}
}
}
closedir($dh);
echo '</div>'."\n";
}
}
}elseif (is_file($path)) {
echo $path.'<br>';
}
}
//ex
listingDir('./dossier/', array('txt', 'sql', 'fla'), array('css', 'admin'), array('config.php', 'config.inc.php', 'desabo.html', 'formulaire.html'), 1);
?>
Conclusion
Je cherchais à faire précisément ça. j'ai consulté quelques sources ici qui n'offraient pas assez de possibilités de paramétrage. J'ai donc entrepris d'optimiser tout ça à partir de plusieurs codes existants et de mon petit cerveau ;) VOili VOilo ... j'espère que ça vous servira ! @+
Historique
- 05 avril 2007 16:09:03 :
- correction d'un petit bug ...
- 05 avril 2007 17:06:20 :
- profondeur OK
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Lister tous les fichiers d'un dossier donné [ par lnp ]
Comment faire pour lister tous les fichiers d'un dossier donné En vue de supprimer les fichiers qui ne sont plus nécessaire au fonctionneme
Lecture d'un nom de fichier...2 [ par magicsmacks ]
Bonjour, J'avais demandais il y a qq jours ceci : " Bonjour, Je possède un dossier sur mon serveur dans lequel
impression de fichiers [ par putch ]
bonjour à tous !voila mon soucij'ai un repertoire pdf/ lequel se trouve un certains nombre de fichiers pdf :)je souhaiterai un lien/bouton pour l
Problème pour de liens hypertext sur les fichier .lnk [ par kt1 ]
Voila je vous explique mon souci.Je dois créer un site intranet pour ma boîte. On va y mettre tout ce qui concerne le Service Qualité.
gestion des fichiers php [ par lucky_girl3 ]
bonjour tout le monde!! j'ai un sérieux pb depui qlq jours ; please help viiiiiiiite!!!!!!!! mon problème: je veux parcourir un
listage d'un dossier par ordre croissant [ par kishkaya ]
Bonjour, alors j'aimerais lister un dossier contenant des .gif nommé en 001.gif, 002.gif, 003.gif ... et les lister par order croissant : echo "
Connaitre le nombre de fichiers dans un dossier [ par tony4758 ]
Bonjour, je voudrais savoir si il existe un script permettant de compter le nombre de fichier qui se trouvent dans un repertoire defini, je n'ai pas t
Lister des fichiers [ par clive2k1 ]
Salut! voilà j'ai choper qqpart un script qui permet de lister tout les fichiers d'un repertoire: <?php $repertoire = '**nom/dossier**'; $dir
recherche par mot dans fichier [ par justone72 ]
Bonjour,J'ai besoin assez rapidemnt d'un script qui permet de faire une recherche dans un dossier (recherche de fichiers dans le dossier + sous dossie
Lister fichier d'un repertoire distant [ par blat ]
Bonjour,Je voudrais lister des fichiers d'un repertoire distant. En gros je veux qu'a partir de www.monsite.com/mapage.php je puisse avoir la liste de
|
Téléchargements
Logiciels à télécharger sur le même thème :
|