沃梦达 / 编程问答 / php问题 / 正文

用 PHP 在外部 FTP 服务器上生成 CSV 文件

Generate CSV file on an external FTP server in PHP(用 PHP 在外部 FTP 服务器上生成 CSV 文件)

本文介绍了用 PHP 在外部 FTP 服务器上生成 CSV 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一些 PHP 代码可以成功地将 MySQL 表导出到 CSV 文件.

I have some PHP code that successfully exports a MySQL table to a CSV file.

我想添加到该代码中,因此 CSL 文件不是在本地保存,而是导出到/保存在外部 FTP 服务器上.

I would like to add to that code, so instead of saving locally the CSL file is exported to/saved on an external FTP server.

我当前的代码:

//open database connection                            
require ('../database-config.php');

//name the file
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=exported-data.csv');

//SQL Query for Data
$sql = "SELECT * FROM data;";        
//Prepare Query, Bind Parameters, Excute Query
$STH = $dbh->prepare($sql);
$STH->execute();

//Export to .CSV
$fp = fopen('php://output', 'w');

$first_row = $STH->fetch(PDO::FETCH_ASSOC);
$headers = array_keys($first_row);

fputcsv($fp, $headers); // put the headers
fputcsv($fp, array_values($first_row)); // put the first row

while ($row = $STH->fetch(PDO::FETCH_NUM))  {
fputcsv($fp,$row); // push the rest
}
fclose($fp);

我知道我需要添加一些新变量;

I know I'll need to add some new variables;

$ftp_server="ftp.remotersite.com";
$ftp_path="/path/to/somefile";
$ftp_username="username";
$ftp_userpass="password";

但是,我不确定使用 ftp_put(或者应该是 ftp_fput?)传输到外部目的地的最佳方式.

But, I'm not sure the best way to use ftp_put (or should it be ftp_fput?) to transfer to the external destination.

提前致谢.

推荐答案

如果你有 ftp:// URL wrappers 已启用,直接在 FTP 服务器上打开文件即可:

If you have ftp:// URL wrappers enabled, just open the file directly on FTP server:

$fp = fopen('ftp://username:password@ftp.example.com/path/to/somefile', 'w');

<小时>

如果您没有启用包装器,请参阅:
在 PHP 中创建文件并将其上传到 FTP 服务器而不在本地保存

这篇关于用 PHP 在外部 FTP 服务器上生成 CSV 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:用 PHP 在外部 FTP 服务器上生成 CSV 文件

基础教程推荐