file_get_contents
リモートファイルを取得して処理しています。残念ながら、ファイルは非常に大きく、それぞれの小さなセグメントのみが必要です。読み取る必要があるオフセットとその長さから正確にわかっていますが、phpマニュアルを読むと、これはfile_get_contents
ローカルファイルでのみ可能であるようです。
ファイル全体をダウンロードしない方法はありますか?
file_get_contents
リモートファイルを取得して処理しています。残念ながら、ファイルは非常に大きく、それぞれの小さなセグメントのみが必要です。読み取る必要があるオフセットとその長さから正確にわかっていますが、phpマニュアルを読むと、これはfile_get_contents
ローカルファイルでのみ可能であるようです。
ファイル全体をダウンロードしない方法はありますか?
私の知る限り、リモート ファイルを開いてファイル ポインタを特定のポイントに移動する方法はありません。その機能を提供するある種のリモート サービスが必要です。
fopen と fseek は機能しているように見えますが、そこには落とし穴があります。マニュアルの作成:
すべてのストリームがシークをサポートしているわけではありません。シークをサポートしていない場合、現在の位置からのフォワード シークは、データの読み取りと破棄によって実行されます。他の形式のシークは失敗します。
サービスの実装に関しては、数多くの例があります。変更されたブロックのみをリモート マシンからローカル マシンにミラーリングする rsync ソリューションが気に入っています。
誰かがこれに出くわした場合、それを処理する良い方法は cURL とCURLOPT_WRITEFUNCTION
.
http サーバーからファイルを読み取るRange
場合、削除サーバーがサポートしている場合はヘッダーを設定できます。