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 で大きなファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。