Explorateur de dossiers récursif

Description

Juste un explorateur de dossiers récursif que je viens de faire en vue de coder un "File manager" complet.
Le code me paraît assez propre, ceci dit, je pense avoir fait un peu de bricolage dans la balise [A AMELIORER].
Les deux instructions :
chdir($rep) ;
echo('<b>'.getcwd().'\\</b></br>') ;
ne sont pas indispensables mais c'est mieux si vous voulez avoir un chemin courant correct. Il faudrait reformater la variable $rep à chaque appel je pense. Je crois qu'il y a une fonction qui peut le faire mais je ne la trouve pas.

Essayez donc en commentant ces instructions pour comprendre ce dont je parle et faire cela d'une façon plus pro.

J'attend vos commentaires constructifs.

ps : Première source en php depuis que je fais du C, d'où la raison de la "propreté" (selon moi !)

Source / Exemple :


<?php

function liste_rep($rep)
{
	if (is_dir($rep) == true)
	{
		// $rep est un répertoire valide
		
		//[A AMELIORER]
		// on ajoute l'antislash
		if ($rep[strlen($rep)-1] !=  '\\')
		{
			$rep = $rep.'\\' ;
		}
		
		// on dit dans quel répertoire on se situe
		chdir($rep) ;
		echo('<b>'.getcwd().'\\</b></br>') ;
		// AMELIORER
		
		if (($pt_rep = opendir($rep)) != false)
		{
			// $rep a été ouvert
			
			// scan des répertoires
			while (($fichier = readdir($pt_rep)) != false)
			{
				// on lit le fichier courant
				
				if ($fichier != '.')
				// on ignore le répertoire courant
				{
					if (is_dir($rep.$fichier) == true)
					{
						echo('+<a href="index.php?chemin='.$rep.$fichier.'\\">'.$fichier.'</a></br>') ;
					}
				}
			}
			
			// on retourne au premier fichier
			rewinddir($pt_rep) ;
			
			// scan des fichiers
			while (($fichier = readdir($pt_rep)) != false)
			{
				// on lit le fichier courant
				
				if (is_dir($rep.$fichier) == false)
				{
					echo('-'.$fichier.'</br>') ;
				}
			}
			
			// on ferme le répertoire qui a été ouvert
			closedir($pt_rep) ;
		}
	}
}

  
?>

<html>
<head>
	<title>Explorateur de dossiers récursif</title>
</head>
<body>
	
	
	<?php
		if (isset($_GET['chemin']) == false)
		{
			$dossier = 'c:\\Program Files\\' ;
		}
		else
		{
			$dossier = $_GET['chemin'] ;
		}
		
		liste_rep($dossier) ;
	?>
	
	
</body>
</html>

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.