对于需要在 PHP 程序中管理远程 FTP 服务器文件的开发者来说,PHP 提供了许多函数来完成这个难题。其中之一就是 FTP_NLIST 函数,它允许你列表远程 FTP 服务器上的文件。
比如说,假设我们需要获取位于 FTP 服务器根目录下所有文件的名称。我们可以如下使用 FTP_NLIST 函数:
$ftp_server = "ftp.example.com"; $ftp_user = "username"; $ftp_pass = "password"; // 连接 FTP 服务器 $conn = ftp_connect($ftp_server) or die("无法连接 FTP 服务器"); // 登录 if (@ftp_login($conn, $ftp_user, $ftp_pass)) { echo "成功登录 FTP 服务器"; } else { echo "无法登录 FTP 服务器"; exit(); } // 获取文件列表 $files = ftp_nlist($conn, "/"); // 输出文件列表 foreach ($files as $file) { echo "上述代码连接到 FTP 服务器,登录成功后,使用 FTP_NLIST 函数获取位于 FTP 服务器根目录下所有文件的名称,并输出这些文件的名称。 需要注意的是,FTP_NLIST 函数返回的文件名可能包含路径信息。比如 FTP 服务器上存在名为 "images/logo.png" 的文件,FTP_NLIST 函数返回的将是 "/images/logo.png",其中开头的斜杠表示文件的绝对路径。 如果只需要获取文件名,可以使用 PHP 的 basename 函数剥离文件名中的路径信息。比如可以改为:" . $file . "
"; } // 关闭 FTP 连接 ftp_close($conn);
foreach ($files as $file) { echo "这样将只输出文件名 "logo.png"。 除了列出根目录下的所有文件,FTP_NLIST 函数还可以列出任意目录下的文件。比如,如果我们需要列出名为 "uploads" 的目录下所有文件的名称,可以把 FTP_NLIST 函数的第二个参数设置为 "/uploads",如下:" . basename($file) . "
"; }
$files = ftp_nlist($conn, "/uploads");注意,FTP_NLIST 函数只能列出文件名和目录名,不能列出文件的详细信息(比如文件大小、修改时间等)。如果需要获得更多文件信息,可以考虑使用 FTP_LIST 函数。