ホームページ > バックエンド開発 > PHPチュートリアル > メモリ制限を超えずに Curl で大きなファイルをダウンロードするにはどうすればよいですか?

メモリ制限を超えずに Curl で大きなファイルをダウンロードするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-12-15 08:42:11
オリジナル
920 人が閲覧しました

How to Download Large Files with Curl Without Exceeding Memory Limits?

Curl を使用した大きなファイルのダウンロード: メモリへの読み取りの代替手段

質問: を使用して大きなファイルをダウンロードするときにメモリの制約を克服するにはどうすればよいですか? carl は通常メモリに読み込みますか?

この問題は、ファイル サイズが使用可能なメモリを超える状況で発生します。サーバー。より効率的な方法は、メモリを完全にバイパスして、ファイルをディスクに直接ストリーミングすることです。

回答:

<?php
set_time_limit(0);
// Set the path to the target file
$fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+');
// Exchange spaces with %20 to ensure compatibility with URLs
$ch = curl_init(str_replace(" ", "%20", $url));
// Extend the timeout value to accommodate large files
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
// Directs curl to write response to file
curl_setopt($ch, CURLOPT_FILE, $fp);
// Automatically follows redirects
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Send request and receive response
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
ログイン後にコピー

このコードでは、次の変更が重要です:

  • curl_setopt($ch, CURLOPT_FILE, $fp);ダウンロードのターゲット ファイルを指定し、ディスクへの直接ストリーミングを有効にします。
  • curl_setopt($ch, CURLOPT_TIMEOUT, 600);大きなファイルのダウンロードに十分な時間を確保します。
  • set_time_limit(0);サーバーのタイムアウトによる早期終了を防ぎます。

以上がメモリ制限を超えずに Curl で大きなファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート