目标是使用 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
真正令人困惑的部分是使用带有 ftp url 的文件系统函数给了我完全相反的问题:
opendir("ftp://userA:password@example.com:21/home/userA/logs"); //works
opendir("ftp://userA:password@example.com:21/logs"); //does not work
由于用户/目录是由用户输入的,我不一定知道他们是要使用绝对路径还是相对(主目录)路径。我可以使用一个简单的 strstr 来检查路径中的第一个字符是否是“/”并选择要使用的方法,但是我最终会编写两倍的代码。
必须有一种更简单的方法来获得某种方法来处理绝对路径和相对路径。我希望这是一件简单的事情,我只是忽略了。
谢谢