[英]ftp_get() file with partial filename(not a wildcard)
我需要使用 PHP 根据文件名的后半部分获取文件
文件名的结构将始终是 NAME_123456789.dat,其中数字是tracking_id(unique)
。
名字是John, Mel, Bronson, etc
。 并且数字是tracking_id
。
只是为了理解这个过程是一个人将输入他们的 tracking_id。 它将从搜索栏中提取它并将其植入特定目录中的 ftp 搜索中。 因为tracking_id
是唯一的,所以它应该只返回一个结果,因此ftp_get()
对吗?
任何帮助是极大的赞赏。
考虑到相对较小的目录大小(来自上面的评论 100+),您应该可以首先使用ftp_nlist()
列出所有文件,然后搜索并下载您想要的文件。
$search = '_' . $trackingId . '.dat';
$searchLen = strlen($search);
$dir = '.'; // example directory
$files = ftp_nlist($connection, $dir);
foreach ($files as $file) {
// check if $file ends with $search
if (strrpos($file, $search) === strlen($file) - $searchLen) {
// found it, download it
ftp_get($connection, 'some/local/file/path', $dir . '/' . $file);
}
}
可以在上面迈克尔·伯科夫斯基 (Michael Berkowski) 的评论中找到更好、更面向未来的选择......
在任何给定时间,您希望在目录中运行多少个文件? 如果数量较少,通过 ftp 列出内容可能适用。 如果有成千上万个文件,您可能希望存储某种文本清单文件以供读取或在数据库中索引它们。
这些确实取决于文件上传到 FTP 服务器的方式和时间,但鉴于我们对此一无所知,我无法提供任何解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.