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

本文介绍了一个用于服务器的脚本,该脚本能定时将指定日期范围内的数据导出为CSV文件,并将其上传到指定的FTP服务器。具体包括CSV文件的创建、数据格式化及FTP上传过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

写一个脚本运行在服务器上定时执行
导出指定时间到cvs文件,并且上传到指定ftp上
// 导出csv
    public function exportCSV($date,$prefix,$fileDir){
        $CsvFile = $fileDir.$prefix.$this->format($date).'.csv';        //上传后的文件名称
        $fp = fopen($CsvFile, 'w');	//w,a,详情查找fopen函数
     	// 表头标题
        $header_data = ['ID','姓名','性别','生日','手机','邮箱'];
        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 * 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 = 'Report_';    //文件名前缀
        $fileDir = __DIR__.'/../data/';        //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';        //上传成功备注空文件node
            $nullresult = ftp_put($conn, $nullFile, $fileDir.'mifi.done', FTP_ASCII);    //上传第二个空文件.done
            // var_dump($nullresult);
        }
        ftp_close($conn);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值