2010-06-18 7 views
2

Très bien, je me connecte à 3 ip différents lorsque je lance ce script.FTP_NLIST PHP est booléen (faux)

Copie les fichiers des répertoires et les télécharge sur le site Web.

Je vais avoir un léger problème avec deux d'entre eux les IP ...

Je me suis tourné le ftp passif, mais il semble toujours revenir comme bool (false)

Updating server 1 
bool(false) 
Warning: ftp_get() [function.ftp-get]: Filename cannot be empty in updater.php on line  42 

Warning: ftp_get() [function.ftp-get]: Error opening in updater.php on line 42 
Updated cache... 
bool(false) 
Warning: ftp_get() [function.ftp-get]: Filename cannot be empty in updater.php on line  60 

Warning: ftp_get() [function.ftp-get]: Error opening in updater.php on line 60 
BZh9rE8PUpdated maps... 
Updating server 2 
bool(false) 
Warning: ftp_get() [function.ftp-get]: Filename cannot be empty in updater.php on line  103 

Warning: ftp_get() [function.ftp-get]: Error opening in updater.php on line 103 
Updated cache... 
bool(false) 
Warning: ftp_get() [function.ftp-get]: Filename cannot be empty in updater.php on line  121 

Warning: ftp_get() [function.ftp-get]: Error opening in updater.php on line 121 
BZh9rE8PUpdated maps... 
Updating server 3 
array(1) { [0]=> string(36) "1ba90fa2e972b50cdaa6bb23c403296b.dua" } Updated cache... 
array(8) { [0]=> string(6) "graphs" [1]=> string(22) "sb_Forlorn_sb3_R2L.bsp" [2]=>  string(17) "sb_gooniverse.bsp" [3]=> string(22) "sb_lostinspace_rc5.bsp" [4]=> string(19)  "sb_new_worlds_2.bsp" [5]=> string(22) "sb_Spacewar_SB3_V1.bsp" [6]=> string(21)  "sb_twinsuns_fixed.bsp" [7]=> string(10) "soundcache" } Updated maps... 

. Une partie du script:

ftp_pasv($conn, true); 
ftp_chdir($conn,"$DIR/maps/"); 

$files = ftp_nlist($conn,"*.*"); 
var_dump($files); 

chdir('sandbox/cache/'); 

for($i=0;$i<count($files);$i++){ 
    if(!ftp_is_dir($files[$i])){ 
     usleep(500000); 
     if(!file_exists($files[$i])){ 
      ftp_get($conn,$files[$i],$files[$i],FTP_ASCII); 
     } 
    } 
} 

echo "Updated cache...<br />"; 

Répondre

2

Vous n'utilisez pas ftp_nlist() correctement.

Le manual for ftp_nlist() spécifie le deuxième argument à être un nom de répertoire (représenté par une chaîne). Il semble que vous essayez plutôt de désigner un modèle de nom de fichier.

Votre code utilise:

$files = ftp_nlist($conn,"*.*"); 

Sauf si vous avez un répertoire nommé *.* cela ne fonctionnera pas.

Vous devez remplacer *.* par un nom de répertoire valide relatif au répertoire de base de l'utilisateur FTP.

Par exemple:

$files = ftp_nlist($conn, "."); 

listera les fichiers dans le répertoire courant, ce qui est susceptible d'être $DIR/maps/ par rapport à votre code d'exemple.

Vous devrez peut-être également passer en mode passif FTP pour gérer les problèmes de pare-feu entre l'hôte à partir duquel votre script s'exécute et l'hôte FTP. Reportez-vous au manual for ftp_pasv() pour plus de détails.

Questions connexes