Насколько я могу судить, это невозможно, но я хочу убедиться.
Я перемещаю файлы с одного IP на другой на том же хостинг-сайте, поскольку они не будут делать это длямне.Вот фрагмент из моего сценария.
...
$files = ftp_nlist($remoteconn, '.');
foreach ($files as $file) {
if ($file != '.' && $file != '..') {
recurse($remoteconn, $remoteserver, $remoteuser, $remotepass, $directorypath . '/' . $file);
}
}
...
recurse()
- это функция, которая закрывает любое открытое соединение, открывает новое, проверяет, является ли файл каталогом или файлом данных, и создает каталог.локально или копирует файл данных в локальный каталог.
Проблема, с которой я столкнулся, заключается в том, что мой хост ограничил список файлов FTP до 500 записей, поэтому я получаю только 498 используемых записей в моем массиве $files
,У меня есть несколько каталогов с более чем 2k файлами в них, потому что это фан-сайт Coppermine gallery, и поэтому каждое изображение имеет 2 или более записей (до 4) в зависимости от его размеров.
Хост отказался увеличиватьколичество записей возвращается.Я попытался обойти эту проблему, открыв список индексов для просмотра файлов и архивируя каталог, но в каждом случае у меня по-прежнему только 498 файлов.
Единственное решение, которое я могу придумать, - это вычислитьвыведите имена файлов, которые в некоторых случаях не являются интуитивно понятными или последовательными (спасибо, Facebook), и настройте сценарий для захвата каждого файла по его имени, а не для получения списка содержимого каталога.
Однако,Я хотел сделать последнее усилие / мольбу для другого решения, потому что вышеупомянутое было бы очень много времени, и если бы был способ посмотреть каталог, определив, откуда я хочу начать тянуть, я был бы в восторге.
Если для решения требуется язык, отличный от php, я по-прежнему все уши.
ETA: Я всегда хотел упомянуть, что и ftp_nlist
, и ftp_rawlist
возвращают только 498используемые записи, и что FXP отключен, и они не хотят его включать.