如何获取服务器上文件名的列表/数组(不带扩展名)。我只需要文件名(curl或ftp也可以)。
我尝试过ftp_nlist
和curl_getinfo
,但输出结果与预期不符。
// connect and login to FTP server
$ftp_server = "user.com";
$ftp_username = "user";
$ftp_userpass = "demo";
$ftp_conn = ftp_connect($ftp_server) or die("Could not connect to
$ftp_server");
$login = ftp_login($ftp_conn, $ftp_username, $ftp_userpass);
// get file list of current directory
$file_list = ftp_nlist($ftp_conn, "/user/new/");
var_dump($file_list);
// close connection
ftp_close($ftp_conn);
假设我有4个zip文件,它们在服务器1.zip,2.zip,3.zip,4.zip
上是http://user.com/user/new
。
预期:
1
2
3
4
实际输出:
Array([0]=> string(1) "." [1]=> string(2) ".." [2]=> string(5) "1.zip" [3]=> string(5) "2.zip" [4]=> string(5) "3.zip" [5]=> string(5) "4.zip")
答案 0 :(得分:1)
您可以使用以下后期处理调用获得所需结果:
$result = array_filter(array_map(function ($v) {
return explode('.', $v)[0];
}, $file_names));
答案 1 :(得分:0)
我认为实际输出在逻辑上是正确的,因为在Linux系统中,。是当前目录,而 .. 表示父目录。它也使命令行处理变得更快,因此您无需键入完整路径。它存在于操作系统中的每个目录结构中,因此,如果您希望获得期望的输出,则只需填充或跳过的值。和..从返回数组。