Lecture de tous les sous dossiers et fichiers d'un répertoire

Soyez le premier à donner votre avis sur cette source.

Snippet vu 12 644 fois - Téléchargée 25 fois

Contenu du snippet

Ce script affiche tous les fichiers,répertoires et sous répertoires d'un dossier.Je l'ai codé dans l'optique de faire un audit de fichiers ou de dossiers modifiés dans un site web, le but final ce cette source étant de pouvoir monitorer les changements fait sur des fichiers ou des répertoires...
Les répertoires ne sont pas classés , à vous de le faire.
PS: Ce n'est pas un explorateur ce script donne une vision éclaté de l'arborescence.

Source / Exemple :


<style>
.fichier {
font-weight:bold;
font-size: 11px;
font-family: arial, sans-serif;
color:#000000;

}
.dossier {
font-weight:bold;
font-size: 12px;
font-family: arial, sans-serif;
color:#009900;
}
</style>
<?php
function scan($rep)
  {
	$dir = opendir($rep); 
     if($dir) // suite au commentaire
       {
	while (false !== ($f = readdir($dir))) //lecture du contenu ,prend en compte si le fichier est nommé 0 et n'arrete la boucle merci pour cette remarque très judicieuse :)
	{
	   if(is_file($rep.$f)) 
	   {
	  
	   echo '<span class="fichier">|__'.$f.'</span><br />';
			 	
	   }
		if(is_dir($rep.$f) && $f!=".." && $f!="." ) // on regarde si il ya des sous répertoires si oui on recommence la fonction.
		{
		   	echo '<ul><span class="dossier">'.$f.'</span><br />';

		        $new_dir=realpath($rep.$f); ///chemin absolu du répertoire
	
			scan("$new_dir/"); //fonction récurrente qui prend le chemin absolu du dossier et le scanne à nouveau.
		}
	 } 
   }
echo "</ul>";
 }
scan("./");///Utilisation de la fonction (on part de la racine du répertoire)

?>

Conclusion :


Je posterai l'intégralité de mon script d'audit de répertoire très bientot...

A voir également

Ajouter un commentaire

Commentaires

malalam
Messages postés
10843
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
17 -
Hello,

@Jimi154 => Tu devrais relire tes classiques ;-)
http://www.php.net/manual/fr/language.operators.comparison.php

la double égalité ou inégalité : == ou != ne compare pas sur les types :
<?php
$a = 0;
$b = false;
if ($a == $b) {
echo 'égaux';
} else {
echo 'inégaux;
}
if ($a === $b) {
echo 'égaux';
} else {
echo 'inégaux';
}
?>
Comme tu peux le voir, avec == , $a et $b sont égaux. Or, l'un est un entier dont la valeur est 0, l'autre un bouléen dont la valeur est false.
Avec ===, ils deviennent inégaux, ce qui est bien plus juste.
L'égalité avec === et l'inégalité avec !==, donc.
C'est bien moins dangereux...un exemple ?
<?php
$sChaine = 'ma chaîne';
if (false == strpos($sChaine, 'm')) {
echo 'm ne se trouve pas dans la chaîne : ma chaîne avec ==';
} else {
echo 'm se trouve dans la chaîne : ma chaîne avec ==';
}
if (false === strpos($sChaine, 'm')) {
echo 'm ne se trouve pas dans la chaîne : ma chaîne avec ===';
} else {
echo 'm se trouve dans la chaîne : ma chaîne avec ===';
}
?>
cs_jimi154
Messages postés
1
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
14 septembre 2007
-
salut, On ecrit pas !== mais plutot != pour signifier l'inégalité.
cs_hrz
Messages postés
43
Date d'inscription
samedi 12 juillet 2003
Statut
Membre
Dernière intervention
4 avril 2010
-
salut
je passerai sur les remarque ci dessus pour en faire une tout autre:
pour avoir code une fonction similaire je suis tomber sur un des gros problemes des fonctions recursives a savoir les boucles sans fin.....
En travaillant sous linux avec des liens symboliques ( A=>B,B=>C,C=>A ) ,le script s'est mis en boucle et sous linux en 30s (timeout du script) la page generee etait tres genereuse ;)
attention donc de ne pas suivre ce type de liens symboliques
et dans ce cas la fonction is_link() arrange bien les chose .
ce jour la , is_link() a fait beaucoup plus que les ' les " ou quoi que ce soit
CString
Messages postés
20
Date d'inscription
samedi 18 septembre 2004
Statut
Membre
Dernière intervention
19 avril 2007
-
Voila mon petit script complet : http://www.phpcs.com/codes/SCANNER-FICHIER_40250.aspx
++
kankrelune
Messages postés
1293
Date d'inscription
mardi 9 novembre 2004
Statut
Membre
Dernière intervention
21 mai 2015
-
Oui tout à fait... .. .

@ tchaOo°

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.