ftp列出并下载当前日期的文件

时间:2018-01-08 00:38:42

标签: php shell ftp

我有一个案子, 我有一个远程服务器,从2015年到现在包含这么多生成的事务文件(.txt)。我必须每天实时下载它。现在,我使用PHP来下载所有内容,但我认为这种方法并不合理。首先,我列出所有文件,然后我读取文件的组件,如修改日期,但这种方法很烦人。让我的程序运行缓慢并花费很多时间。

这是我的代码(我使用过PHP Yii2 ),

public function actionDownloadfile(){
    $contents=Yii::$app->ftpFs->listContents('/backup', ['timestamp','path','basename']); --> Much time needed while executing this line
    var_dump($contents);
    foreach ($contents as $value) {
        if (date('Y-m-d',$value['timestamp']) == date('Y-m-d')){
            echo "[".date('Y-m-d H:i:s')."] : Downloading file ".$value['basename']."\n";
            $isi = Yii::$app->ftpFs->read($value['path']);
            $dirOut = Yii::$app->params['out'];
            $fileoutgoing = $dirOut."/".$value['basename'];
            $file = fopen($fileoutgoing,"w");
            fwrite($file,$isi);
        }
    }
}

我有一个问题, 是否可以仅在当前日期列出并下载ftp服务器中的某些文件而不先将它们全部列出?

使用PHP或Shell脚本的任何解决方案都可以。

非常感谢你(y)

0 个答案:

没有答案