Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Muat Turun Fail Besar dengan Curl Tanpa Melebihi Had Memori?

Bagaimana untuk Muat Turun Fail Besar dengan Curl Tanpa Melebihi Had Memori?

Barbara Streisand
Lepaskan: 2024-12-15 08:42:11
asal
920 orang telah melayarinya

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

Memuat Turun Fail Besar dengan Curl: Alternatif untuk Membaca ke dalam Memori

Soalan: Bagaimana seseorang boleh mengatasi kekangan memori apabila memuat turun fail besar menggunakan curl, yang biasanya dibaca ke dalam ingatan?

Isu ini timbul dalam situasi di mana saiz fail melebihi memori yang tersedia pada pelayan. Pendekatan yang lebih cekap ialah menstrim fail terus ke cakera, memintas memori sepenuhnya.

Jawapan:

<?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);
?>
Salin selepas log masuk

Dalam kod ini, pengubahsuaian berikut adalah kunci:

  • curl_setopt($ch, CURLOPT_FILE, $fp); menentukan fail sasaran untuk muat turun, membolehkan penstriman terus ke cakera.
  • curl_setopt($ch, CURLOPT_TIMEOUT, 600); memastikan masa yang mencukupi untuk muat turun fail yang besar.
  • set_time_limit(0); menghalang penamatan pramatang kerana tamat masa pelayan.

Atas ialah kandungan terperinci Bagaimana untuk Muat Turun Fail Besar dengan Curl Tanpa Melebihi Had Memori?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan