Возникла задача проиндексировать содержимое ФТП для быстрого поиска файлов и папок. Насколько я понимаю, такое необходимо организовывать с помощью рекурсии. Создаем функцию для загрузки каталога и индексации содержимого. В ней же вызываем цикле (по количеству подкаталогов) функцию еще раз, в параметратрах передаем имя подкаталога.
Содержимое каталога можно получить с помощью 2-х функций - ftp_rawlist и ftp_nlist. Первая возвращяет подробное описание содержимого, вторая - только полные имена.
Собственно, проблема возникла такая: функция ftp_nlist возвращяет только полные имена содержимого каталога, без указания файл это или папка. Т.е. для моей цели не подходит. Функция ftp_rawlist возвращяет также права доступа, время создания, имя владельца и т.д., но также учитывает каталоги "." и ".." и некоторую служебную информацию, но это уже зависит от самого сервера (насколько я это понимаю. Например, для одного фтп-сервера вернула строку "total некоторое_число"). По первому символу в возвращяемых строках можно определить, папка это или файл ("d" и "-" соответственно). А вот с правами доступа я запутался + не получается правильно распарсить строку, чтобы вытащить из нее только название, отбросив остальную информацию. С правами доступа такая проблема, что комбинация rwxrwx--- (или похожая, где закрыты прова на чтение у анонимусов) на одних серверах означает, что доступа к папке нет, на других - он все-таки есть (я не силен в linux\'е и не очень понимаю, почему так происходит). Т.е. я не понимаю, как проверить, доступна папка или нет, и если доступна, то проиндексировать ее и вызвать для нее функцию обхода. Также, в возвращаемых строках, помимио прав доступа указаны владелец, группа, время создания и т.д., но эта информация также может быть представлена по-разному и само назваение может содержать пробелы. Не понимаю, как это распарсить, чтобы извлечь название.
Если кто-то поможет с указанной проблемой или даст ссылки на готовые решения (что-то не нашел, может плохо искал), то буду очень благодарен.