php导出cvs,而且上传到ftp服务器

// 导出csv
    public function exportCSV($date = '2017-12-01',$prefix='a',$fileDir='b'){
        $CsvFile = $fileDir.$prefix.$this->format($date).'.csv';        //上传后的文件名称
        $fp = fopen($CsvFile, 'w');
        // 表头标题
        $header_data = ['Trading Platform ID(Login)','Client-First Name','Client-surname','Client-date of birth','Client-Country','National Identifier'];
        foreach ($header_data as $key => $value) {
            $header_data[$key] = iconv('utf-8', 'gbk', $value);    //转码
        }
        fputcsv($fp, $header_data);
        // 数据
        $startDate = $date . ' 00:00:00';
        $endDate = $date . ' 23:59:59';
        $sql = "select Cln_ID,First_Name,Surname,Birth_Date,Country from cln_apply where (Input_Date>'$startDate' AND Input_Date<'$endDate')";
        $clnmodel = new ClnModel();
        $result = $clnmodel->findAll($sql);
        if($result){
            foreach ($result as $val) {
                $arr = (array)$val;
                foreach($arr as $k=>$v){
                    if($k == 'Birth_Date'){
                        $v = substr($v,0,10);
                    }
                    $arr[$k] = iconv('utf-8', 'gbk', $v);    //转码
                }
                fputcsv($fp, $arr);
            }
        }
    }
    // 时间格式化
    public function format($date){
        return join(explode('-',$date));
    }
    // 上传csv文件到Ftp        
    // 参数 $date 格式 YYYY-MM-DD
    public function uploadCSV($date = '2017-12-01'){
        $host = '';        //FTP主机
        $user = '';        //ftp用户名
        $pass = '';        //ftp密码
        
        $prefix = 'ATXUK_client_';    //文件名前缀
        $fileDir = __DIR__.'/../mifi_report/';        //Mifi_Report文件的目录
        // 生成CSV文件
        $CSV = $this->exportCSV($date,$prefix,$fileDir);
        // 链接登陆ftp
        $conn = ftp_connect($host) or die("Could not connect");
        ftp_login($conn, $user, $pass);
        
        $remote = $prefix.$this->format($date).'.csv';        //上传后的文件名称
        $local = $fileDir.$remote;        //本地要上传的文件
        $csvresult = ftp_put($conn, $remote, $local, FTP_BINARY);    //上传第一个文件.csv
        // var_dump($csvresult);
        if($csvresult){
            $nullFile = $prefix.$this->format($date).'.done';        //上传成功备注
            $nullresult = ftp_put($conn, $nullFile, $fileDir.'mifi.done', FTP_ASCII);    //上传第二个空文件.done
            // var_dump($nullresult);
        }
        ftp_close($conn);
    }
相关文章
相关标签/搜索