Le langage PHP dispose de nombreuses fonctions permettant de travailler directement à partir du protocole de transfert de fichiers (FTP).

Fonction
Description
$id_connexion = ftp_connect($nom_hote [, $num_port]);
ouvre une connexion FTP.
true | false = ftp_login($id_connexion, $nom_utilisateur, $mot_passe);
authentifie une connexion FTP.
$nom_dossier = ftp_pwd($id_connexion);
retourne le nom du dossier en cours.
true | false = ftp_cdup($id_connexion);
change de dossier et passe au dossier parent.
true | false = ftp_chdir($id_connexion, $nom_dossier);
définit le dossier spécifié comme dossier en cours.
$nom | false = ftp_mkdir($id_connexion, $nom_dossier);
crée un nouveau dossier et en retourne le nom.
true | false = ftp_rmdir($id_connexion, $nom_dossier);
efface un dossier.
$tab_fichiers = ftp_nlist($id_connexion, $nom_dossier);
retourne la liste des noms de fichiers d'un dossier dans un tableau.
$tableau = ftp_rawlist($id_connexion, $nom_dossier);
retourne une liste détaillée des fichiers d'un dossier dans un tableau.
$chaine = ftp_systype($id_connexion);
retourne un identifiant de type du serveur FTP.
true | false = ftp_pasv($id_connexion, true | false);
active (true) ou désactive (false) le mode passif.
true | false = ftp_get($id_connexion, $fichier_local, $fichier_distant, $mode);
télécharge un fichier distant à partir du serveur FTP sous un nom local. Le mode peut prendre l'une de ces valeurs : FTP_ASCII ou FTP_BINARY
true | false = ftp_fget($id_connexion, $id_fichier_local, $fichier_distant, $mode);
télécharge un fichier distant à partir du serveur FTP et le sauvegarde dans un fichier local.
true | false = ftp_put($id_connexion, $fichier_distant, $fichier_local, $mode);
télécharge un fichier local sous un nom distant sur un serveur FTP.
true | false = ftp_fput($id_connexion, $fichier_distant, $id_fichier_local, $mode);
télécharge un fichier local sous un nom distant sur un serveur FTP.
$taille = ftp_size($id_connexion, $fichier_distant);
retourne la taille d'un fichier sur le serveur FTP.
$date = ftp_mdtm($id_connexion, $fichier_distant);
retourne la date de dernière modification d'un fichier sur un serveur FTP.
true | false = ftp_rename($id_connexion, $nom_fichier, $nouveau_nom);
renomme un fichier sur un serveur FTP.
true | false = ftp_delete($id_connexion, $chemin);
supprime un fichier sur un serveur FTP.
true | false = ftp_site($id_connexion, $chaine_commande);
envoie une commande au serveur FTP.
true | false = ftp_quit($id_connexion);
ferme une connexion FTP.
Exemples [voir]
<?php
  $nomrep = 'undossier';
  $nomfichier = 'unepagehtml';
  $contenu = 'un contenu quelconque, mais extrêmement important...';
  $nom_hote = 'ftp.serveur.net';
  $num_port = 21;
  $nom_utilisateur = 'nom';
  $mot_passe = 'pAssWorD';
  //Ouverture d'une connexion à l'hôte FTP
  $id_connexion = ftp_connect($nom_hote, $num_port);
  //Connexion de l'utilisateur
  ftp_login($id_connexion, $nom_utilisateur, $mot_passe);
  //Accès au répertoire 'www'
  ftp_chdir($id_connexion, 'www');
  //Création du répertoire 'undossier' puis 'temp'
  if (!file_exists($nomrep) && !is_dir($nomrep)) 
    ftp_mkdir($id_connexion, $nomrep);
  $nom = 'temp';
  if (!file_exists($nom) && !is_dir($nom)){
    ftp_mkdir($id_connexion, $nom);
  }
  echo '<h3>Répertoire : '.ftp_pwd($id_connexion).'</h3>';
  $fichier = $nomrep.'/'.$nomfichier.'.html';
  //Création d'un fichier temporaire
  $tmp = tempnam($nom, "fichier");
  echo '<h3>Fichier temporaire : '.$tmp.'</h3>';
  //Ouverture du fichier temporaire
  $id_f = fopen($tmp, "w")
  //Ecriture dans le fichier temporaire
  fwrite($id_f, $contenu.'<br>'.$contenu.'<br>'.$contenu);
  echo '<h3>Taille du fichier : '.filesize($tmp).'</h3>';
  echo '<h3>Affichage du fichier :</h3>';
  readfile($tmp);
  //Fermeture du fichier temporaire
  fclose($id_f);
  //Réouverture du fichier temporaire en lecture seule
  $id_f = fopen($tmp, "r");
  //Téléchargement du fichier temporaire vers son nouvel emplacement
  ftp_put($id_connexion, $fichier, $tmp, FTP_BINARY);
  echo '<h3>Identificateur de fichier : '.$id_f.'</h3>';
  echo '<h3>Date de modification du fichier : '
              .ftp_mtdm($id_connexion, $fichier).'</h3>';
  //Fermeture du fichier temporaire
  fclose($id_f);
  //Fermeture de la connexion FTP
  ftp_quit($id_connexion);
?>