我试图通过FTP从一个文件夹中获取具有特定扩展名的最新文件。我使用下面的代码来获取最新的文件。但是它获取的是最新的文件,而不管文件扩展名是什么。
// new connect
$conn = ftp_connect('ftp.website.com');
ftp_login($conn, 'username', 'password');
// get list of files on given path
$files = ftp_nlist($conn, '/data');
$mostRecent = array(
'time' =\> 0,
'file' =\> null
);
foreach ($files as $file) {
// get the last modified time for the file
$time = ftp_mdtm($conn, $file);
if ($time > $mostRecent['time']) {
// this file is the most recent so far
$mostRecent['time'] = $time;
$mostRecent['file'] = $file;
}
}
ftp_get($conn, "/home/mywebsite/public_html/wp-content/uploads/data-zipped/target.zip", $mostRecent\['file'\], FTP_BINARY);
ftp_delete($conn, $mostRecent\['file'\]);
ftp_close($conn);
我想获取具有特定扩展名的特定文件。
我想要取得的档案以下列filename.add.zip
结尾。
文件名每天都在变化,因此可能是file22.add.zip
moredata.add.zip
。
但是add.zip
保持不变。
不幸的是,也有扩展名为filename.del.zip
的文件
所以它不能只是.zip,它需要是add.zip
。
因此,通过FTP,我想获取以add.zip
结尾的最新文件。
有人有办法吗?
我目前使用的代码只选取最近的文件。不管文件扩展名是什么。
2条答案
按热度按时间pw9qyyiw1#
除了由@Anggara的好的通用答案,许多(大多数)FTP服务器将只允许您检索列表过滤的扩展名:
一些参考资料:
顺便说一句,如果你有很多文件,为每个文件调用
php_mdtm
可能要花很长时间。tcomlyy62#
如果要检查以
*.add.zip
结尾的文件,请在循环中添加过滤器: