如果您只想按上次修改日期对文件进行排序,您可以使用
ftp_nlist($conn, '-t .');
这不会告诉你what不过,每个文件的日期是。
如果您还想获取修改日期,可以使用ftp_rawlist
并解析输出。这是我整理的一个简单示例:
$list = ftp_rawlist($ftp, '.');
$results = array();
foreach ($list as $line) {
list($perms, $links, $user, $group, $size, $d1, $d2, $d3, $name) =
preg_split('/\s+/', $line, 9);
$stamp = strtotime(implode(' ', array($d1, $d2, $d3)));
$results[] = array('name' => $name, 'timestamp' => $stamp);
}
usort($results, function($a, $b) { return $a['timestamp'] - $b['timestamp']; });
在此刻$results
包含按上次修改时间升序排序的列表;反转排序函数以获取最近修改的第一种格式的列表。
Note: ftp_rawlist
不提供exact修改时间戳,因此此代码可能并不总是准确工作。您还应该验证 FTP 服务器的输出是否符合此算法,并包括一些健全性检查以确保将来保持这种状态。