Цель состоит в том, чтобы использовать php для FTP на сервере и получить списки каталогов. Единственная проблема в том, что мне нужно использовать абсолютный путь, чтобы добраться до каталога.
Пример:
$host = "example.com";
$port = 21;
$connection = ftp_connect($host, $port);
ftp_login($connection, "userA", "password");
ftp_pasv($connection, true);
//user's home directory is /home/userA
print_r( ftp_nlist($connection, "logs")); //works as intended
print_r( ftp_nlist($connection, "/home/userA/logs")); //does not work
Действительно запутанная часть заключается в том, что использование функций файловой системы с URL-адресом ftp дает мне прямо противоположную проблему:
opendir("ftp://userA:[email protected]:21/home/userA/logs"); //works
opendir("ftp://userA:[email protected]:21/logs"); //does not work
Поскольку пользователь/каталог вводится пользователем, я не обязательно буду знать, хотят ли они использовать абсолютный или относительный (домашний каталог) путь. Я мог бы использовать простую strstr, чтобы проверить, является ли первый символ в пути символом «/», и выбрать, какой метод использовать, но тогда я бы написал в два раза больше кода.
Должен быть более простой способ заставить какой-то метод работать как с абсолютными, так и с относительными путями. Я надеюсь, что это что-то простое, что я просто пропускаю.
Спасибо
ftp_pwd($connection)
)? Если это так, удалите начало пути. - person mcrumley   schedule 29.08.2012ftp_pwd($connection)
возвращает / только. Я ожидал, что он вернет /home/userA. Я не могу придумать другого способа найти домашний каталог пользователя по умолчанию через ftp. Правда, я не админ сервера. У меня также нет доступа, чтобы что-либо изменить на ftp-сервере, и, к сожалению, у меня есть только этот для тестирования. - person user1052474   schedule 29.08.2012