gpt4 book ai didi

php - 使用 phpseclib nlist 从后缀/扩展名过滤的 SFTP 文件夹中获取文件

转载 作者:行者123 更新时间:2023-12-04 13:41:01 26 4
gpt4 key购买 nike

我需要从 SFTP 服务器获取文件,但我只需要扩展名为 txt 的文件。如果我循环结果并在本地使用 PHP 进行过滤,则需要花费太多时间。我如何使用 nlist 做到这一点?

我的代码是:

$timeout_sftp = 30; 
$ls_directory = $sftp->nlist($sftp_path, false, $timeout_sftp);

最佳答案

SFTP 不允许过滤文件(协议(protocol)本身,它不是 PHP 中 SFTP 实现的限制)。

所以你所能做的就是检索整个目录的列表并在本地过滤它们。

$files = $sftp->nlist($sftp_path);

foreach ($files as $file)
{
if (preg_match("/\.txt$/i", $file))
{
echo "Found $file\n";
}
}

当然,您可以使用 SSH“exec” channel 在服务器上执行 ls *.txt。但这不再是 SFTP 解决方案,您需要具有对服务器的 shell 访问权限。

$filelist = $ssh->exec("ls *.txt");

关于php - 使用 phpseclib nlist 从后缀/扩展名过滤的 SFTP 文件夹中获取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192617/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com