如何获取服务器上文件名的列表/数组?

时间:2019-02-14 03:38:07

标签: php

如何获取服务器上文件名的列表/数组(不带扩展名)。我只需要文件名(curl或ftp也可以)。

我尝试过ftp_nlistcurl_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")

2 个答案:

答案 0 :(得分:1)

您可以使用以下后期处理调用获得所需结果:

$result = array_filter(array_map(function ($v) {
    return explode('.', $v)[0];
}, $file_names));

答案 1 :(得分:0)

我认为实际输出在逻辑上是正确的,因为在Linux系统中,是当前目录,而 .. 表示父目录。它也使命令行处理变得更快,因此您无需键入完整路径。它存在于操作系统中的每个目录结构中,因此,如果您希望获得期望的输出,则只需填充或跳过的值。和..从返回数组。