首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用php中的数组从ftp服务器下载最新的3个文件?

如何使用php中的数组从ftp服务器下载最新的3个文件?
EN

Stack Overflow用户
提问于 2017-12-06 19:47:35
回答 1查看 97关注 0票数 0

如何从ftp服务器下载最新的3个文件?

我已经尝试过using(array_slice($contents, -3, 3, true)and,它在显示内容的var_dump__for上运行得很好,这里只显示了3个最新的文件

我需要下载这3个文件,并将其保存在本地计算机* pv_inverter_2 pv_inverter_1**pv_inverter_1 pv_inverter_3上。

我也可以使用array_slice(???, -3, 3, true)这样做吗?

代码语言:javascript
运行
复制
// get contents of the current directory
$contents = ftp_nlist($conn_id, ".");

// output $contents
var_dump (array_slice($contents, -3, 3, true));

$mostRecent = array(
'time' => 0,
'file' => null

);


foreach ($contents as $file) {
// get the last modified time for the file
$time = ftp_mdtm($conn_id, $file);

if ($time > $mostRecent['time']) {
    // this file is the most recent so far
    $mostRecent['time'] = $time;
    $mostRecent['file'] = $file;
    }
}

 if (ftp_get($conn_id, "pv_inverter_1.csv", $mostRecent['file'],FTP_BINARY)) {

     echo "Files Successfully Downloaded\n";
 }    

 else {

    echo "There was a problem\n";
} 
EN

回答 1

Stack Overflow用户

发布于 2017-12-08 11:53:49

如果您想下载目录列表中服务器返回的最后三个文件:

代码语言:javascript
运行
复制
$files = ftp_nlist($conn_id, ".");

$last_3_files = array_slice($files, -3);

$i = 0;
foreach ($last_3_files as $file)
{
    if (ftp_get($conn_id, "pv_inverter_$i.csv", $file, FTP_BINARY))
    {
        echo "$file downloaded\n";
    }
    else
    {
        echo "There was a problem downloading $file\n";
    }
    $i++;
}

不过请注意,“最后”和“最新”并不相同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47682338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档