Создать файл CSV на внешнем FTP-сервере в Stack Overflow

У меня есть некоторый код 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?) перевести на внешний пункт назначения.

Заранее спасибо.

3

Решение

Если у вас есть ftp:// URL-упаковщики включены, просто откройте файл прямо на FTP-сервере:

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

Если у вас не включены обертки, смотрите:
Создание и загрузка файла в PHP на FTP-сервер без локального сохранения

3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector