cURLを使用した非常に基本的な例です。これは、FTPからデータを読み取ることができるときに呼び出される読み取りコールバックを指定し、FTPトランザクションがバックアップサーバーで実行されているときにクライアントに同時にダウンロードするためにデータをブラウザに出力します。
これは拡張可能な非常に基本的な例です。
<?php
// ftp URL to file
$url = 'ftp://ftp.mozilla.org/pub/firefox/nightly/latest-firefox-3.6.x/firefox-3.6.29pre.en-US.linux-i686.tar.bz2';
// init curl session with FTP address
$ch = curl_init($url);
// specify a callback function for reading data
curl_setopt($ch, CURLOPT_READFUNCTION, 'readCallback');
// send download headers for client
header('Content-type: application/octet-stream');
header('Content-Disposition: attachment; filename="backup.tar.bz2"');
// execute request, our read callback will be called when data is available
curl_exec($ch);
// read callback function, takes 3 params, the curl handle, the stream to read from and the maximum number of bytes to read
function readCallback($curl, $stream, $maxRead)
{
// read the data from the ftp stream
$read = fgets($stream, $maxRead);
// echo the contents just read to the client which contributes to their total download
echo $read;
// return the read data so the function continues to operate
return $read;
}
はCURLOPT_READFUNCTION
オプションの詳細はcurl_setopt()を参照してください。
は内部バックアップですか?誰がダウンロードをしていますか? –