好吧,当我运行这个脚本时,我连接到3个不同的ip。
它从directorys复制文件并将其下载到网站。
我有两个ip的问题......
我已经开启了被动的ftp,但它似乎仍然以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...
。脚本的一部分:
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 />";
答案 0 :(得分:2)
您没有正确使用ftp_nlist()
。
manual for ftp_nlist()指定第二个参数为目录名(由字符串表示)。看起来好像是在尝试表示文件名模式。
您的代码正在使用:
$files = ftp_nlist($conn,"*.*");
除非你有一个名为*.*
的目录,否则这将不起作用。
您应该使用相对于FTP用户主目录的有效目录名替换*.*
。
例如:
$files = ftp_nlist($conn, ".");
将列出当前目录中的文件,该示例代码可能是$DIR/maps/
。
您可能还需要切换到FTP被动模式,以应对运行脚本的主机与FTP主机之间的防火墙问题。有关详细信息,请参阅manual for ftp_pasv()。