La première chose à vérifier est de réussir la réussite de la connexion FTP. Si la connexion échoue, la fonction ftp_nlist renvoie un tableau vide. Vous pouvez vérifier que la connexion FTP est réussie via le code suivant:
$ftp_server = "ftp.example.com";
$ftp_user_name = "user";
$ftp_user_pass = "password";
// Se connecter àFTPserveur
$conn_id = ftp_connect($ftp_server);
// Se connecterFTPserveur
if (@ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)) {
echo "Connexion avec succès!";
} else {
echo "Échec de la connexion!";
}
Assurez-vous l'exactitude de l'adresse du serveur FTP, du nom d'utilisateur et du mot de passe. Si la connexion échoue, vous ne pourrez pas obtenir la liste des répertoires, donc FTP_NLIST renverra un résultat vide.
La fonction ftp_nlist doit fournir un chemin de répertoire valide. Si le chemin est mauvais ou si le répertoire n'existe pas, FTP_NLIST renverra également une liste vide. Lorsque vous appelez cette fonction, assurez-vous de vous assurer que le chemin que vous avez spécifié est correct.
$dir = "/path/to/your/directory"; // Vérifiez si le chemin est correct
$file_list = ftp_nlist($conn_id, $dir);
Si le chemin est un chemin relatif, assurez-vous que vous avez passé au bon répertoire de travail. Si le chemin contient des caractères spéciaux, il est également nécessaire de confirmer s'il a été correctement codé.
L'utilisateur FTP doit avoir la permission de lire le répertoire spécifié. Si le compte FTP n'a pas suffisamment d'autorisations pour afficher les fichiers dans un répertoire, FTP_NList renverra un tableau vide. Dans ce cas, vous devez contacter l'administrateur FTP pour confirmer si le compte a lu les autorisations pour le répertoire.
Dans certains environnements réseau, les modes passifs et actifs de FTP peuvent affecter l'acquisition de listes de fichiers. Par défaut, PHP utilise le mode passif. Si votre serveur n'utilise pas correctement le mode passif sous certaines configurations réseau, vous pouvez essayer de passer en mode actif:
ftp_pasv($conn_id, false); // Défini sur le mode actif
Essayez de passer à un mode différent pour dépanner le problème.
Les pare-feu ou autres restrictions sur le réseau peuvent également empêcher les connexions FTP de fonctionner correctement. Surtout si vous utilisez un réseau externe ou un serveur cloud, vérifiez les problèmes de réseau qui font bloquer la connexion FTP. Vous pouvez utiliser certains outils de diagnostic réseau (tels que Ping Commande ou Telnet) pour confirmer si le port FTP est ouvert.
Bien sûr, la raison la plus directe peut être que le répertoire cible est vraiment vide. Vous pouvez vérifier manuellement le répertoire sur le serveur FTP pour confirmer si le fichier existe réellement. Si le répertoire est vide, il est normal que FTP_NLIST renvoie un tableau vide.
Si l'URL est utilisée dans le chemin de FTP_NList et que l'URL contient le nom de domaine, nous remplaçons ici le nom de domaine par m66.net pour illustrer cela comme exemple:
$dir = "ftp://m66.net/path/to/directory";
$file_list = ftp_nlist($conn_id, $dir);
Veuillez noter que le formulaire de chemin FTP est nécessaire pour vous assurer que l'URL que vous transmettez est formatée correctement. S'il est incorrect, FTP_NList peut ne pas analyser correctement le répertoire, ce qui entraîne un tableau vide.
S'il n'y a pas de problème avec les raisons ci-dessus et que vous ne pouvez toujours pas obtenir la liste des fichiers, vous pouvez essayer les étapes de dépannage suivantes:
Informations de débogage : Activer les informations de débogage pour FTP et afficher les informations détaillées lors de la connexion FTP pour aider à trouver des erreurs potentielles.
Remplacer la version PHP : différentes versions de PHP peuvent différer dans la prise en charge FTP, et la mise à niveau ou la rétrogradation de la version PHP peut parfois résoudre le problème.
Vérifiez les journaux du serveur : Parfois, les journaux du serveur FTP peuvent fournir plus d'informations pour vous aider à découvrir quel est le problème.