Télécharger Ensemble du Répertoire via FTP de PHP
Je suis en train d'écrire un script qui va télécharger l'intégralité du contenu d'un répertoire stocké sur mon serveur à d'autres serveurs via ftp.
J'ai lu à travers les de la documentation sur www.php.net, mais n'arrive pas à trouver un moyen de télécharger plus d'un fichier à la fois.
Est-il un moyen de le faire, ou est-il un script qui va de l'indice de ce répertoire et de créer un ensemble de fichiers à télécharger?
Merci d'avance pour votre aide!
OriginalL'auteur Joel Drapper | 2009-05-29
Vous devez vous connecter pour publier un commentaire.
Une fois que vous avez une connexion ouverte, en téléchargeant le contenu d'un répertoire en série est simple:
Le téléchargement de tous les fichiers en parallèle serait plus difficile.
OriginalL'auteur Frank Farmer
Donc, j'ai pris @iYETER du code, et l'enveloppa comme un objet de classe.
Vous pouvez appeler ce code par ces lignes:
Récursivement les analyses locales dir, et le place sur la télécommande dir parent. Si elle frappe les erreurs, il crée un tableau de la hiérarchie de tous les fichiers et leur code d'exception (je ne capturer que 2, si c'est une autre erreur, il le jette route par défaut pour l'instant)
La classe c'est enveloppée dans:
OriginalL'auteur Xackery
Le faire dans une boucle, itérer sur tous les fichiers dans le dossier
OriginalL'auteur alanquillin
Si vous voulez avoir de multiples fichiers téléchargés à la fois, vous aurez besoin de fil ou à la fourchette.
Je ne suis pas sûr d'un Thread implémentation en PHP, mais vous devriez jeter un oeil à la PHP SPL et/ou POIRE
Edit: Grâce à Frank Farmer pour me faire savoir qu'il y a un fork() fonction en PHP connu comme pcntl_fork()
Vous aurez également à obtenir l'ensemble du contenu du répertoire de façon récursive pour être en mesure de télécharger tous les fichiers d'un répertoire donné.
merci pour l'astuce, j'ai ajouté le lien vers mon post.
Je ne recommanderais pas à l'aide de fourches. C'est poilu choses. Il est beaucoup plus facile de simplement ouvrir plusieurs connexions et l'utilisation d'un socket_select() pour écrire à puis de manière asynchrone.
OriginalL'auteur Boris Guéry
J'ai codé, le script télécharge tout le dossier avec ses sous-dossiers et fichiers.
J'espère que ça va vous aider.
OriginalL'auteur iYETER