Lister un folder et adapter un lien sur les fichiers de ce folder. [Résolu]

Signaler
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
-
Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012
-
BOnjour les Z'amis ( amies) ,

J'ai plusieurs document, doc, pdf, txt,msg qui se trouve sur un serveur.
J'ai trouvé un code sur le net qui me permet d'afficher les différents dossiers et fichiers du dossiers master. Cela fonctionne très bien car l'affichage des dossiers est d'une certaine couleur et les fichiers d'une autre couleur et surtout, c'est trié. Cependant, j'aimerais adapter un lien automatiquement sur ces fichiers et là....Problème. Je sais éditer le premier document de chaque dossier et pas les autres documents d'une même liste. J'ai beau retourner le code dans tous les sens mais je ne vois pas d'où vient l'erreur.
Avez-vous une idée, indication pour faire avancer le schmilblic.
Toute aide est la bienvenue. Merci

<html>
<head>
<meta http-equiv= "Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>

<?php
function ListFolder($Folder, $SkipFileExts, $SkipObjects) // Fonction pour lister les dossiers
{
$url = $Folder; // On initialise le début de l'url dynamique

$dir = opendir($Folder);
while (false !($Current readdir($dir))) // Boucle sur tout ce qu'il y a dans le répertoire
{
if ($Current !='.' && $Current != '..' && in_array($Current, $SkipObjects)===false)
{
if(is_dir($Folder.'/'.$Current)) // Si c'est un dossier
{
$url .= "/".$Current; // On ajoute le dossier sur lequel on se trouve pour former dynamiquement l'url

echo ' '.$Current.'
';
ListFolder($Folder.'/'.$Current, $SkipFileExts, $SkipObjects); // On liste les dossiers contenue dans le dossier (récursivité)
}
else
{
$url . = "/".$Current; // On ajoute le nom du fichier pour former dynamiquement l'url

$FileExt = strtolower(substr(strrchr($Current ,'.'),1));
if (in_array($FileExt, $SkipFileExts)===false) // On regarde si on doit afficher cette extension

echo "$Current
"; // On affiche l'url d'accès au fichier
echo '
';
}
}
}
closedir($dir);
}
$Folder = '//W3ASE01/autocom/documents/communication';
$SkipExts = array('php', 'db');
$SkipObjects = array('UnDossier', 'UnFichier');
ListFolder($Folder, $SkipExts, $SkipObjects);
?>

</html>

2 réponses

Messages postés
68
Date d'inscription
vendredi 4 juin 2004
Statut
Membre
Dernière intervention
1 décembre 2012

Merci Ludwig59, cela fonctionne maintenant.
Ce forum est une merveille et les utilisateurs comme vous méritent une ovation.
Précis et rapide. J'espère pouvoir en faire autant quand je maitriserai mieux le php.

Merci
Messages postés
128
Date d'inscription
lundi 21 avril 2008
Statut
Membre
Dernière intervention
6 mai 2011
2
Bonjour
Le problème vient de la variable $url, car à chaque fois vous concaténé avec le $current.
Essayer ceci :

<html>
<head>
<meta http-equiv= "Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>

<?php
function ListFolder($Folder, $SkipFileExts, $SkipObjects) // Fonction pour lister les dossiers
{
$dir = opendir($Folder);
while (false !($Current readdir($dir))) // Boucle sur tout ce qu'il y a dans le répertoire
{
if ($Current !='.' && $Current != '..' && in_array($Current, $SkipObjects)===false)
{
if(is_dir($Folder.'/'.$Current)) // Si c'est un dossier
{

echo ' '.$Current.' 
';
ListFolder($Folder.'/'.$Current, $SkipFileExts, $SkipObjects); // On liste les dossiers contenue dans le dossier (récursivité)
}
else
{
$FileExt  = strtolower(substr(strrchr($Current ,'.'),1));
if (in_array($FileExt, $SkipFileExts)===false) // On regarde si on doit afficher cette extension

echo "$Current
"; // On affiche l'url d'accès au fichier
echo '
';
}
}
}
closedir($dir);
}
$Folder = '//W3ASE01/autocom/documents/communication';
$SkipExts = array('php', 'db');
$SkipObjects = array('UnDossier', 'UnFichier');
ListFolder($Folder, $SkipExts, $SkipObjects);
?>

</html>