FTP_NLIST PHP is bool (false) - PullRequest
       14

FTP_NLIST PHP is bool (false)

2 голосов
/ 18 июня 2010

Хорошо, я подключаюсь к 3 различным ip, когда запускаю этот скрипт.

Он копирует файлы из каталогов и загружает их на сайт.

У меня небольшая проблема сдва из них ip's ...

Я включил пассивный 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 />";

1 Ответ

2 голосов
/ 19 июня 2010

Вы не используете ftp_nlist() правильно.

В руководстве для ftp_nlist () указан второй аргумент, который будет именем каталога (представленным строкой).Похоже, что вместо этого вы пытаетесь обозначить шаблон имени файла.

Ваш код использует:

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

Если у вас нет каталога с именем *.*, это не будет работать.

Вы должны заменить *.* действительным именем каталога относительно домашнего каталога пользователя FTP.

Например:

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

выведет список файлов в текущем каталоге,что, вероятно, будет $DIR/maps/ относительно вашего примера кода.

Вам также может понадобиться перейти в пассивный режим FTP, чтобы справиться с проблемами межсетевого экрана между хостом, с которого выполняется ваш скрипт, и хостом FTP.Подробнее см. Руководство для ftp_pasv () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...