Télécharger en local un fichier depuis un serveur FTP en PHP

Nous allons lister les fichiers présents dans un répertoire distant sur un serveur FTP, puis copier chaque fichier trouvé dans un répertoire de notre site. On pourra ensuite supprimer la source distante s’il le faut.

// on se connecte au serveur FTP
$conn_id = ftp_connect($ftp_host);
$login_result = ftp_login($conn_id, $ftp_user, $ftp_pass);
ftp_pasv($conn_id, true);
// on liste les fichiers présents (ici à la racine)
$files = ftp_nlist($conn_id, '.');
$local_path = 'E:\wamp\www\dev';

if(!empty($files)){
	foreach($files as $file){
		// pour chaque fichier trouvé, on le copie dans notre répertoire local
		if(ftp_get($conn_id, $local_path.'/'.$file, $file, FTP_ASCII)){
			// on supprimer le fichier distant si nécessaire
			ftp_delete($conn_id, $file);
		}
	}
}
// on clos la connexion
ftp_close($conn_id);