Parcours recursif d'un repertoire

Description

Bon, j'en ai eu besoin aujourd'hui, j'ai ecrit ca, et apres coup je me suis dit que je n'avais pas vu beaucoup de scripts simplifies au maximum et avec un minimum de mise en forme de ce genre ici.
Donc je le poste, peut-etre sera t il utile a des debutants.
Il est vraiment simplifie au maximum, je n'affiche aucune info concernant les fichiers (date de modification etc) mais si quelqu'un le souhaite, je le ferai.
Rajout : j'ai commence a creer une classe PHP5 dans le but d'ecrire un explorateur. Pour l'instant, il est basique :
- affichage des repertoires a gauche
- affichage des fichiers du repertoire choisi a droite
- affichage de vignettes HTML des images (testees sur leur mime)
- affichage de la taille des images
- affichage d'infos sur les fichiers
- suppression de fichiers et repertoires
- renommage de fichiers et repertoires
- creation de fichiers vides

Source / Exemple :


// fonction de base

<?php
function recursive_readdir ($dir) {
	$dir = rtrim ($dir, '/'); // on vire un eventuel slash mis par l'utilisateur de la fonction a droite du repertoire
	if (is_dir ($dir)) // si c'est un repertoire
		$dh = opendir ($dir); // on l'ouvre
	else {
		echo $dir, ' n\'est pas un repertoire valide'; // sinon on sort! Appel de fonction non valide
		exit;
		}
	while (($file = readdir ($dh)) !== false ) { //boucle pour parcourir le repertoire 
		if ($file !== '.' && $file !== '..') { // no comment
			$path =$dir.'/'.$file; // construction d'un joli chemin...
			if (is_dir ($path)) { //si on tombe sur un sous-repertoire 
				echo '<p style="font-weight: bold; border : 1pt solid #000000;">', $path, ' -> dir</p>'; // ptit style...
				echo '<div style="padding-left: 20px; border: 1pt dashed #000000;">'; // idem...
				recursive_readdir ($path); // appel recursif pour lire a l'interieur de ce sous-repertoire
				echo '</div><br />';
			}
			else
				echo $path, '<br />'; // si il s'agit d'un fichier, on affiche, tout simplement.
		}
	}
	closedir ($dh); // on ferme le repertoire courant
}	
recursive_readdir ('.');
?>

Conclusion :


Note : l'index.php est en XHTML strict, mais en fait non ;-) Je n'ai pas eu le temps de regler les problemes qui empeche ce doctype d'etre vrai. Rien de grave, problemes avec les listes, et les id. Je corrigerai ca pour une prochaine version.

Je mettrai une nouvelle source une fois que l'explorateur sera reellement fini, avec ses fonctionnalites finales.

Codes Sources

A voir également

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.