いくつかの POST パラメーターを渡すと、ダウンロードするファイルが返される URL があります。サーバーにそのファイルをダウンロードさせ、ダウンロード中にユーザーに送信する最良の方法は何ですか?
前もって感謝します
応答で何をしたいかによって異なりますが、最も簡単な方法は、CURLOPT_RETURNTRANSFERを設定して、応答を出力することです。
$ch = curl_init("http://stackoverflow.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
失敗するとFALSEが返されることを忘れないでくださいcurl_exec
。したがって、おそらくそれも確認する必要があります。
if ($resp === false) die('Unable to contact server');
サーバーにも応答を保存したい場合(基本的にダムプロキシである上記のメソッドの代わりに)、代わりにCURLOPT_WRITEFUNCTIONを使用できます。
$fp = fopen('my_file', 'w');
$ch = curl_init("http://stackoverflow.com/");
curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'writefunc');
curl_exec($ch);
curl_close($ch);
fclose($fp);
function writefunc($ch, $data) {
global $fp;
echo $data;
return fwrite($fp, $data);
}
write関数は2つの引数(curl handle、data)を取り、書き込まれたデータの量(この場合は出力された量)の戻り値を必要とします。
全体にcURLを使用します。
現時点では参照はありませんが、少なくともマルチ cURL を使用すると、データのチャンクが入ってきたときにコールバック関数を起動することができます。あなたのクライアント。