Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menstrim Muat Turun Fail Besar dengan cURL untuk Mengelakkan Isu Memori?

Bagaimanakah Saya Boleh Menstrim Muat Turun Fail Besar dengan cURL untuk Mengelakkan Isu Memori?

DDD
Lepaskan: 2024-12-01 13:35:10
asal
226 orang telah melayarinya

How Can I Stream Large File Downloads with cURL to Avoid Memory Issues?

Menstrim Muat Turun Fail Besar dengan CURL

Memuat turun fail jauh yang besar boleh menjadi satu cabaran, terutamanya apabila fail tidak dapat dimuatkan dalam memori yang tersedia pada pelayan. Ini boleh menjadi isu yang kerap apabila menggunakan CURL, yang secara lalai menyimpan data fail dalam ingatan sebelum menulisnya ke cakera.

Nasib baik, terdapat penyelesaian yang membolehkan anda menstrim fail terus ke cakera. Untuk mencapai ini, buat pelarasan berikut pada kod anda:

<?php
set_time_limit(0);

// Open a file pointer for writing
$fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+');

// Set up CURL options
$ch = curl_init(str_replace(" ", "%20", $url));

// Set timeout to a high enough value
curl_setopt($ch, CURLOPT_TIMEOUT, 600);

// Write CURL response to the file pointer
curl_setopt($ch, CURLOPT_FILE, $fp);

// Enable following of location headers
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

// Execute CURL
curl_exec($ch);

// Close CURL and the file pointer
curl_close($ch);
fclose($fp);
Salin selepas log masuk

Dengan menetapkan CURLOPT_FILE kepada penuding fail, anda mengarahkan CURL untuk menulis data yang dimuat turun terus ke fail pada cakera dan bukannya menyimpannya dalam memori . Ini memastikan bahawa fail yang sangat besar pun boleh dimuat turun dengan lancar tanpa had memori.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menstrim Muat Turun Fail Besar dengan cURL untuk Mengelakkan Isu 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan