簡體   English   中英

如何獲取服務器上文件名的列表/數組?

[英]How to get the list/array of file names on server?

如何獲取服務器上文件名的列表/數組(無擴展名)。 我只想要文件名(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);

假設我在服務器http://user.com/user/new上有4個zip文件,分別是1.zip,2.zip,3.zip,4.zip

預期:

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")

您可以使用以下后期處理調用獲得所需的結果:

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

我認為實際輸出在邏輯上是正確的,因為在Linux系統中 是當前目錄,而..表示父目錄。 它也使命令行處理變得更快,因此您無需鍵入完整路徑。 它存在於操作系統中的每個目錄結構中,因此,如果您希望獲得期望的輸出,則只需填充或跳過的值。 和..從返回數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM