2

この例を使用したいと思います。

https://stackoverflow.com/a/5830599

このページに記載されているまさにその理由のためです。

より大きなファイル(一般に100〜200メガバイト)を提供しようとしていますが、curl_exec()を使用してすべてのデータを読み取るのではなく、データをチャンクで「出力」する必要があります。私のウェブホストプロバイダーは64メガバイトのメモリしか許可していないので、一度にそれほど多くの情報を読み取ることはできません。

ここに何か提案はありますか?前もって感謝します。

4

1 に答える 1

1

これはとても簡単です。あなたがする必要があるのは、データが入ってくるときにそれを処理するためのコールバックをcURLに提供することです。

function onResponseBodyData($ch, $data)
{
    echo $data;
    return strlen($data);
}

curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'onResponseBodyData');

コールバックからデータの長さを返すことは重要です。これは、処理したデータの量を示します。渡されたデータの長さ以外のもの(など0)を返すと、要求は中止されます。

ここで、出力バッファリングがオンになっていないことを確認し、送信する前に応答全体をバッファリングしないようにサーバーを構成します。ほとんどの構成で、箱から出してすぐに機能します。

ここで他の例を見つけることができます:http: //curl.haxx.se/libcurl/php/examples/callbacks.html

于 2013-01-29T04:52:19.000 に答える