Voici un résumé des fonctions PHP les plus répandues pour travailler sur un serveur FTP.
Glossaire des commandes
ftp_connect
Ouvre une connexion FTP.
resource ftp_connect (string host [, int port])
ftp_connect() retourne un float FTP en cas de succès, et FALSE sinon.
ftp_connect() ouvre une connexion FTP avec l'hôte host. Le paramètre port spécifie le port de connexion. S'il est omis, le port 21 sera utilisé.
ftp_rawlist() exécute la commande FTP LIST, et retourne le résultat dans un tableau. Chaque élément du tableau correspond à une ligne du résultat de la commande. Le résultat n'est pas analysé, et est retourné brut. L'identifiant de système retourné par ftp_systype() sera utile pour déterminer la façon d'interpréter le résultat.
ftp_systype
Retourne un identifiant de type de serveur FTP.
string ftp_systype (resource ftp_stream)
ftp_systype() retourne le type de serveur, ou FALSE en cas d'erreur.
ftp_pasv
Active ou désactive le mode passif.
bool ftp_pasv (resource ftp_stream, int pasv)
ftp_pasv() retourne TRUE en cas de succès, et FALSE sinon.
ftp_pasv() active le mode passif si pasv est à TRUE (et le désactive si pasv est à FALSE). En mode passif, les données de connexion sont initiées par le client, plutôt que par le serveur.
ftp_get
Télécharge un fichier depuis un serveur FTP.
bool ftp_get (resource ftp_stream, string local_file, string remote_file, int mode)
ftp_get() retourne TRUE en cas de succès, et FALSE sinon.
ftp_get() télécharge le fichier remote_file depuis le serveur FTP, et le sauve dans le fichier local local_file. Le mode de transfert mode spécifié doit être soit FTP_ASCII ou FTP_BINARY.
ftp_fget
Télécharge un fichier depuis un serveur FTP et le sauve dans un fichier déjà ouvert.
bool ftp_fget (resource ftp_stream, int fp, string remote_file, int mode)
ftp_fget() retourne TRUE en cas de succès, et FALSE sinon.
ftp_fget() télécharge le fichier remote_file depuis le serveur FTP, et l'écrit dans le fichier identifié par fp. Le mode de transfert mode spécifié doit être FTP_ASCII ou FTP_BINARY.
ftp_put
Charge un fichier sur un serveur FTP.
bool ftp_put (resource ftp_stream, string remote_file, string local_file, int mode)
ftp_put() retourne TRUE en cas de succès, et FALSE sinon.
ftp_put() enregistre le fichier local_file sur le serveur FTP, sous le nom de remote_file. Le mode de transfert mode spécifié doit être FTP_ASCII ou FTP_BINARY.
ftp_fput
Charge un fichier ouvert sur un serveur FTP.
bool ftp_fput (resource ftp_stream, string remote_file, int fp, int mode)
ftp_fput() retourne TRUE en cas de succès, et FALSE sinon.
ftp_fput() charge les données issues du fichier identifié par fp jusqu'à la fin du fichier. Le résultat est stocké dans le fichier remote_file sur le serveur FTP. Le mode de transfert mode spécifié doit être FTP_ASCII ou FTP_BINARY.
ftp_size
Retourne la taille d'un fichier.
int ftp_size (resource ftp_stream, string remote_file)
ftp_size() retourne la taille du fichier en cas de succès, et FALSE sinon.
ftp_size() retourne la taille d'un fichier sur un serveur FTP. Si une erreur survient, ou que le fichier n'existe pas, la valeur -1 est retournée. Certains serveurs FTP ne supportent pas cette fonction.
ftp_mdtm
Retourne la date de dernière modification d'un fichier sur un serveur FTP.
int ftp_mdtm (resource ftp_stream, string remote_file)
ftp_mdtm() retourne un UNIX timestamp en cas de succès, et FALSE sinon.
ftp_mdtm() lit la date de dernière modification d'un fichier et retourne le UNIX timestamp. Si une erreur survient, ou si le fichier n'existe pas,la valeur -1 est retournée. Certains serveurs FTP ne supportent pas cette fonction.
ftp_delete() retourne TRUE en cas de succès, et FALSE sinon.
ftp_delete() efface le fichier path sur un serveur FTP.
ftp_site
Envoie la commande SITE au serveur.
bool ftp_site (resource ftp_stream, string cmd)
ftp_site() retourne TRUE en cas de succès, et FALSE sinon.
ftp_site() envoie la commande cmd au serveur FTP. Les commandes SITE ne sont pas normalisées, et peuvent varier d'un serveur à l'autre. Elles permettent de gérer notamment les permissions de fichier, et les groupes.
// Création de la connexion $conn_id = ftp_connect("$ftp_server");
// Authentification avec nom de compte et mot de passe $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");
// Vérification de la connexion if ((!$conn_id) || (!$login_result)) { echo "La connexion FTP a échoué!"; echo "Tentative de connexion à $ftp_server avec $ftp_user_name"; die; } else { echo "Connecté à $ftp_server, avec $ftp_user_name"; }
// Téléchargement d'un fichier. $upload = ftp_put($conn_id, "$destination_file", "$source_file", FTP_BINARY);
// Vérification de téléchargement if (!$upload) { echo "Le téléchargement Ftp a échoué!"; } else { echo "Téléchargement de $source_file sur $ftp_server en $destination_file"; }
// Fermeture de la connexion FTP. ftp_quit($conn_id);