Я пытаюсь создать список всех файлов (и их размеров) в каталоге, включая все в подкаталогах.Рекурсивно сканировать каталог и подкаталоги через FTP с помощью PHP
Файлы находятся на удаленном сервере. Таким образом, мой скрипт подключается через FTP, затем запускает рекурсивную функцию, используя ftp_chdir
, чтобы пройти через каждый каталог.
Если есть другой способ сделать это, я открыт для предложений.
$flist = array();
function recursive_list_dir($conn_id, $dir, $parent = "false") {
global $flist;
ftp_chdir($conn_id, $dir) or die("Fudgeballs: ".$parent."/".$dir);
$list = array();
$list = ftp_rawlist($conn_id, ".");
if($parent != "false") { $dir = $parent."/".$dir; }
for($x = 0; $x < count($list); $x++) {
$list_details = preg_split("/[\s]+/", $list[$x]);
$file = $list_details[3];
$size = $list_details[2];
if(!strstr($file, ".")) { // if there's no dot (.), then we assume it's a directory (is there a command similar to "is_dir" for FTP? that would be more fail proof?)
recursive_list_dir($conn_id, $file, $dir);
}
else { $flist[] = $dir."@".$file."@".$size; }
}
ftp_chdir($conn_id, "..");
}
recursive_list_dir($conn_id, ".");
Сценарий работал отлично до определенного момента, но теперь он не работает. PHP возвращает ошибку с ftp_chdir
. Единственное, что изменилось, это то, что мы добавили на сервер больше файлов. Сценарий работает, если я запускаю его в подкаталоге. Но если я запустил его на "." он не работает. Так это не удается, потому что слишком много файлов и подкаталогов?
Я предполагаю, что вы ничего не можете запустить на удаленном сервере? (также нет скриптов php) – thejh