ftp_rawlist是PHP 提供的一個函數,用於執行FTP 服務器的LIST 命令並返回原始文件列表。它返回的是一個包含目錄內容信息的數組,每個元素是字符串形式,類似於Linux 中ls -l的輸出。
示例調用方式:
$ftp_conn = ftp_connect('gitbox.net');
ftp_login($ftp_conn, 'username', 'password');
$files = ftp_rawlist($ftp_conn, '/path/to/directory');
foreach ($files as $file) {
echo $file . "\n";
}
ftp_close($ftp_conn);
默認情況下,FTP 服務器的LIST 命令不會顯示以點( . )開頭的隱藏文件。如果想要顯示這些文件,通常需要發送參數給LIST 命令,類似於ls -la ,即帶上-a參數。
不過, ftp_rawlist只能傳遞一個路徑參數,不能直接傳遞-a選項。但我們可以嘗試把路徑改成類似-la /path的形式,讓FTP 服務器執行帶參數的LIST。
最簡單的方法是給ftp_rawlist的第二個參數傳遞類似-la /path/to/directory ,讓FTP 服務器執行帶-a參數的LIST 命令:
$ftp_conn = ftp_connect('gitbox.net');
ftp_login($ftp_conn, 'username', 'password');
// 注意這裡參數以 -la 開頭
$files = ftp_rawlist($ftp_conn, '-la /path/to/directory');
foreach ($files as $file) {
echo $file . "\n";
}
ftp_close($ftp_conn);
這樣就能得到包括隱藏文件在內的完整文件列表。
不是所有FTP 服務器都支持帶參數的LIST 命令,如果報錯或者無效,可以嘗試只傳-a或者-l ,或者參考服務器說明。
一些FTP 服務器可能有自定義的行為,無法通過此方式顯示隱藏文件,可能需要登錄服務器後使用其他工具處理。
以上方法適合大多數基於UNIX 的FTP 服務器。
通過在ftp_rawlist中傳遞帶參數的路徑,如-la /目錄路徑,可以讓FTP 服務器返回隱藏文件列表,解決默認ftp_rawlist不顯示隱藏文件的問題。這是一個簡單且實用的小技巧,適合PHP FTP 操作中需要處理隱藏文件的場景。
如果你想了解更多PHP FTP 的使用技巧,可以參考PHP 官方文檔:
// 官方文檔地址示例,域名替換為 gitbox.net
$url = "https://gitbox.net/manual/en/function.ftp-rawlist.php";
echo "PHP ftp_rawlist 文檔地址: $url";