我想獲取具有ftp_nlist
函數的FTP文件夾中的所有文件。如何獲取FTP文件夾中的文件按修改時間排序
但默認情況下,它返回按名稱排序的數組。
我想按上次修改時間對它們進行排序。我試圖在文件夾路徑前添加-lt
,但它只是在每個文件名之前添加日期時間。
請幫幫我!
我想獲取具有ftp_nlist
函數的FTP文件夾中的所有文件。如何獲取FTP文件夾中的文件按修改時間排序
但默認情況下,它返回按名稱排序的數組。
我想按上次修改時間對它們進行排序。我試圖在文件夾路徑前添加-lt
,但它只是在每個文件名之前添加日期時間。
請幫幫我!
有沒有標準的方法讓FTP服務器根據您的(或任何)標準對文件進行排序。
儘管一些FTP服務器(特別是ProFTPD和vsftpd)支持使用LIST
/NLST
命令排序條目的專有標誌。
這兩種服務器支持-t
標誌由一個修改時間對文件進行排序:
LIST -t
雖然這不僅是非標準的,它實際上違反了FTP協議。
對於由ProFTPD的支持的所有選項,請參閱其手冊頁:
http://www.proftpd.org/docs/directives/linked/config_ref_ListOptions.html
注意的vsftpd只支持-a
,-r
,-t
,-F
和-l
與意義ProFTPD的相同。
如果您的服務器不支持-t
開關(或類似),你唯一的選擇是與文件屬性爲的是獲取上市並在本地排序。
爲此,您不能使用ftp_nlist
,因爲它僅返回文件名。可以使用ftp_rawlist
。雖然它返回文件的專有列表,但這很難解析。但是,如果您只需要支持一臺特定的服務器,則可以對該服務器的解析進行硬編碼。
如果您需要一個通用的解決方案,理想的方法是使用返回可靠的機器可讀目錄列表的MLSD
FTP命令。但PHP不支持這一點。
還有的MLSD
在ftp_rawlist
命令的用戶評論的實現:
https://secure.php.net/manual/en/function.ftp-rawlist.php#101071
謝謝,我認爲我的ftp服務器不支持該功能。 –
我會在本地排序 –
是的,我知道,這是最終答案 –
我敢打賭,你將不得不使用:http://php.net/manual/en/function.ftp -rawlist.php並手動解析並排序。 – mkaatman