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>
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.