Tester l'existence d'un dossier sur un serveur Ftp

Eléphant du PHP | 72 Messages

19 oct. 2009, 19:05

Bonjour à tous

Je suis en train d'ecrire une classe afin de gerer un serveur ftp.Le seul probeme est la creation d'un dossier .

En effet, la fonction renvoit une chaine de caractere qui correspond au dossier crée ou false si elle rencontre une erreur.

Comment faire en sorte de tester l'existence d'un dossier sur mon serveur ftp avant de le creer afin de ne pas generer d'erreur. Je pourrais toujours renommer l'initial par ftp_rename.

merci d'avance pour vos lumieres

ViPHP
fab
ViPHP | 2657 Messages

19 oct. 2009, 19:15

Si il n'y a pas de méthode directe pour le faire tu peux utiliser http://fr.php.net/manual/fr/function.ftp-chdir.php, qui te renvoie true en cas de succes ( donc le dossier existe ) et false en cas d'échec ( donc le dossier n'existe pas ) Après il faut pas oublier de revenir en arrière :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 72 Messages

20 oct. 2009, 20:43

Merci à toi , j'ai reussi à créer ma fonction tel que je le souhaitais grace a ta methode.Je tourve bizarre qu'une fonction beaucoup plus adequate ne soit pas disponible.

D'autre part, je teste donc si mon dossier existe avant de le creer tel que :
if (FALSE === ftp_chdir($id,$dir)){
 //le dossier n'existe donc pas , je le crée
 ftp_mkdir ($id,'mon dossier');
}
probleme : php genere une erreur sur ma ligne de test du ftp_chdir alors que ma fonction est correct d'abord on teste avant d'encreer un .Comment procédé sans passer par l'ancien @.

Pourquoi une tel erreur de php?
Petite explication svp, merci

ViPHP
fab
ViPHP | 2657 Messages

20 oct. 2009, 21:43

Je dois t'avouer que là il semble que ça soit un des rare cas ou le @ soit de rigueur, je n'ai pas de solution à te proposer et je viens de consulter la documentation et les commentaires et ils utilisent le @ donc ...
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Eléphant du PHP | 72 Messages

22 oct. 2009, 20:36

Vraiment merci de ta reponse, moi aussi j'ai cherché un peu partout , j'ai echappé avec un @ lmais repart deçu snifff.
C'est ma premiere bizarrerie de php à vrai dire.