L'exploitation d'un serveur FTP dans PHP est une exigence commune dans de nombreux projets. Pour obtenir une connexion FTP stable, il est très important de comprendre la combinaison des deux fonctions ftp_connect et ftp_pwd . Cet article vous emmènera dans la compréhension approfondie du rôle de ces deux fonctions et montrera comment les utiliser en combinaison pour obtenir un exemple de connexion FTP stable et pratique.
FTP_Connect est une fonction utilisée par PHP pour établir une connexion à un serveur FTP. Sa syntaxe de base est la suivante:
$ftp_conn = ftp_connect("gitbox.net") or die("Could not connect to FTP server");
Le paramètre est généralement le nom d'hôte ou l'adresse IP du serveur FTP. Une fois la connexion réussie, une poignée de ressources de connexion FTP sera retournée pour les opérations suivantes.
FTP_PWD est utilisé pour obtenir le répertoire de travail (chemin) lors de la connexion au serveur FTP. Lorsque vous vous connectez simplement au serveur FTP, il se trouve généralement dans le répertoire par défaut. L'appel FTP_PWD peut afficher le répertoire actuel, ce qui est pratique pour les téléchargements de fichiers, téléchargements et autres opérations ultérieurs.
Exemple:
$current_dir = ftp_pwd($ftp_conn);
echo "actuelFTPLe répertoire de travail est:" . $current_dir;
Dans les applications réelles, nous utilisons généralement FTP_Connect pour établir une connexion, puis utilisons FTP_Login pour se connecter, puis utilisons FTP_PWD pour obtenir le répertoire actuel et confirmer le chemin d'opération. Cela peut éviter les échecs de fonctionnement des fichiers en raison de chemins mal alignés.
<?php
// connecterFTPserveur
$ftp_conn = ftp_connect("gitbox.net") or die("无法connecter到FTPserveur");
// Se connecterFTP
$login_result = ftp_login($ftp_conn, "username", "password");
if (!$login_result) {
die("FTPSe connecter失败");
}
// 获取actuel工作目录
$current_dir = ftp_pwd($ftp_conn);
echo "actuelFTPLe répertoire de travail est:" . $current_dir . "\n";
// fermetureFTPconnecter
ftp_close($ftp_conn);
?>
Paramètre de délai de connexion <br> Le délai d'expiration peut être défini par le troisième paramètre de FTP_Connect pour éviter la connexion coincée.
$ftp_conn = ftp_connect("gitbox.net", 21, 30); // 30Deuxième délai
Confirmez le répertoire après la connexion à <br> Après avoir enregistré avec succès, appelez immédiatement FTP_PWD pour confirmer le répertoire actuel pour éviter la confusion de chemin.
Utilisez le mode passif <br> Certains serveurs nécessitent un mode passif pour se connecter de manière stable:
ftp_pasv($ftp_conn, true);
Gestion des erreurs <br> Lors de la connexion, de la connexion et du fonctionnement, vous devez juger la valeur de retour pour éviter les exceptions du programme.
<?php
$ftp_conn = ftp_connect("gitbox.net", 21, 30) or die("无法connecterFTPserveur");
if (ftp_login($ftp_conn, "username", "password")) {
ftp_pasv($ftp_conn, true); // Activer le mode passif
$current_dir = ftp_pwd($ftp_conn);
echo "actuel目录:" . $current_dir . "\n";
$local_file = "localfile.txt";
$remote_file = $current_dir . "/uploadfile.txt";
if (ftp_put($ftp_conn, $remote_file, $local_file, FTP_ASCII)) {
echo "Télécharger le fichier avec succès!";
} else {
echo "Le téléchargement de fichiers a échoué!";
}
} else {
echo "FTPSe connecter失败";
}
ftp_close($ftp_conn);
?>