Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2008, 09h33   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 6
Points : 1
Points : 1
Par défaut [FTP] Lister les dossiers d'un FTP distant

Bonjour,

Je me connecte à un serveur distant par le biais de la fonction ftp_connect().
J'arrive donc à lister tous les fichiers du repertoire grâce à ce bout de code :

Code :
1
2
3
	$connexion = ftp_connect($host);
	ftp_login($connexion, $login, $mdp);
	$array = ftp_nlist($connexion, "");
Mon array contient donc tous les FICHIERS, mais je souhaiterai lister uniquement les DOSSIERS. Auriez vous une idée pour faire le tri? Après quelques recherches, je ne trouve aucune fonction permettant de lister les dossiers d'un repertoire.

Une idée?

Merci d'avance
Vico2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 09h52   #2
Membre émérite
 
Avatar de julien.63
 
Inscription : décembre 2005
Messages : 1 322
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 1 322
Points : 981
Points : 981
Envoyer un message via MSN à julien.63
salut
tu peux utiliser cette fonction : is_dir http://no2.php.net/is_dir
julien.63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 10h31   #3
Invité de passage
 
Inscription : juillet 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 6
Points : 1
Points : 1
Code :
1
2
3
4
5
6
7
		for($i = 0; $i < count($array); $i++)
		{
			if(is_dir($array[$i]))
			{
			echo '<option value="'.$i.'">'.$array[$i].'</option>';
			}
		}
Ce bout de code me retourne deux repertoires "." et "..". Pourtant il y en a d'autres !

Merci pour ton aide.
Vico2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h06   #4
Membre confirmé
 
Avatar de Gaara-Manga
 
Inscription : avril 2007
Messages : 247
Détails du profil
Informations personnelles :
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : avril 2007
Messages : 247
Points : 213
Points : 213
Perso jconseil plus le readdir pour parcourir un répertoire (comme l'indique le nom de la fonction^^)

Sa donnerais un truc genre :

Code :
1
2
3
4
5
6
7
8
<?php
$open = opendir('./tonrepertoire/');
 
while (($file = readdir($open)) != false)
{
    echo $file;
}
?>
Gaara-Manga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h11   #5
Invité de passage
 
Inscription : juillet 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 6
Points : 1
Points : 1
Dites moi si je me trompe, mais vos fonction ne sont pas pour parcourir un repertoire _local_ ?
Mon script est exécuté sur un serveur A, et doit lister les repertoires d'un serveur B.
Ta fonction me liste les fichiers du serveur A justement
Vico2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h22   #6
Membre confirmé
 
Avatar de Gaara-Manga
 
Inscription : avril 2007
Messages : 247
Détails du profil
Informations personnelles :
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : avril 2007
Messages : 247
Points : 213
Points : 213
A excuse j'avais mal lu.

Sinon ta fonction marche correctement en temps normal et ne devrais te retourner que les répertoires, mais faut savoir que ftp_nlist() ne retourne que le contenu d'un dossier et non pas de ces sous-dossiers donc si tu souhaite avoir les sous dossiers sa serait normal qu'il te prenne pas tout^^
Gaara-Manga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h27   #7
Invité de passage
 
Inscription : juillet 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 6
Points : 1
Points : 1
Citation:
Envoyé par Gaara-Manga Voir le message
A excuse j'avais mal lu.

Sinon ta fonction marche correctement en temps normal et ne devrais te retourner que les répertoires, mais faut savoir que ftp_nlist() ne retourne que le contenu d'un dossier et non pas de ces sous-dossiers donc si tu souhaite avoir les sous dossiers sa serait normal qu'il te prenne pas tout^^
Il me liste bien les fichiers ^^
Mais moi je veux uniquement les dossiers. Et là, je cale.
Vico2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h32   #8
Membre confirmé
 
Avatar de Gaara-Manga
 
Inscription : avril 2007
Messages : 247
Détails du profil
Informations personnelles :
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : avril 2007
Messages : 247
Points : 213
Points : 213
Ta lu ce que j'ai mis ? (histoire d'avancer quoi^^)


PS : répertoire = dossier j'ai compris ce que tu cherches à faire t'inquiète^^
Gaara-Manga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h34   #9
Invité de passage
 
Inscription : juillet 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 6
Points : 1
Points : 1
Citation:
Envoyé par Gaara-Manga Voir le message
Ta lu ce que j'ai mis ? (histoire d'avancer quoi^^)


PS : répertoire = dossier j'ai compris ce que tu cherches à faire t'inquiète^^
Bah oui jt'ai lu
"Sinon ta fonction marche correctement en temps normal et ne devrais te retourner que les répertoires"
Ma fonction est celle donnée au premier post (ftp_nlist) ?
Dans ce cas, elle ne me retourne tous les fichiers, repertoires compris (et non pas que les repertoires !)
"mais faut savoir que ftp_nlist() ne retourne que le contenu d'un dossier et non pas de ces sous-dossiers"
Peu importe, je veux uniquement le dossier courrant
Vico2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h39   #10
Membre confirmé
 
Avatar de Gaara-Manga
 
Inscription : avril 2007
Messages : 247
Détails du profil
Informations personnelles :
Localisation : France, Vienne (Poitou Charente)

Informations forums :
Inscription : avril 2007
Messages : 247
Points : 213
Points : 213
Alors ton

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$connexion = ftp_connect($host);
ftp_login($connexion, $login, $mdp);
$array = ftp_nlist($connexion, "");
 
for($i = 0; $i < count($array); $i++)
{
    if(is_dir($array[$i]))
    {
        echo '<option value="'.$i.'">'.$array[$i].'</option>';
    }
}
?>
devrais marcher correctement.
Gaara-Manga est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h42   #11
Invité de passage
 
Inscription : juillet 2008
Messages : 6
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 6
Points : 1
Points : 1
Citation:
Envoyé par Gaara-Manga Voir le message
Alors ton

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$connexion = ftp_connect($host);
ftp_login($connexion, $login, $mdp);
$array = ftp_nlist($connexion, "");
 
for($i = 0; $i < count($array); $i++)
{
    if(is_dir($array[$i]))
    {
        echo '<option value="'.$i.'">'.$array[$i].'</option>';
    }
}
?>
devrais marcher correctement.
Pourtant ce n'est pas le cas :p


edit > Bon tant pis, je vais dire qu'un repertoire est repertoire si il n'y a pas de point.

Merci
Vico2110 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h39.


 
 
 
 
Partenaires

Hébergement Web