當前位置: 首頁> 最新文章列表> 使用ftp_rawlist 列出隱藏文件的方法

使用ftp_rawlist 列出隱藏文件的方法

gitbox 2025-05-26

什麼是ftp_rawlist?

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 顯示隱藏文件的技巧

最簡單的方法是給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";