在PHP中的外部FTP服务器上生成CSV文件
作者:互联网
我有一些PHP代码可以成功将MySQL表导出到CSV文件.
我想添加到该代码中,因此不是将CSL文件保存在本地,而是将其导出到/保存在外部FTP服务器上.
我当前的代码:
//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);
我知道我需要添加一些新变量;
$ftp_server="ftp.remotersite.com";
$ftp_path="/path/to/somefile";
$ftp_username="username";
$ftp_userpass="password";
但是,我不确定使用ftp_put(或者应该是ftp_fput?)传输到外部目标的最佳方法.
提前致谢.
解决方法:
如果您有ftp://
URL wrappers enabled,则直接在FTP服务器上直接打开文件:
$fp = fopen('ftp://username:password@ftp.example.com/path/to/somefile', 'w');
如果没有启用包装器,请参阅:
Creating and uploading a file in PHP to an FTP server without saving locally
标签:fputcsv,export-to-csv,ftp,php 来源: https://codeday.me/bug/20191109/2011470.html