Maison > développement back-end > tutoriel php > Comment puis-je télécharger des fichiers volumineux avec Curl sans surcharge de mémoire ?

Comment puis-je télécharger des fichiers volumineux avec Curl sans surcharge de mémoire ?

Mary-Kate Olsen
Libérer: 2025-01-03 20:18:07
original
287 Les gens l'ont consulté

How Can I Download Large Files with Curl Without Memory Overload?

Téléchargement de fichiers volumineux avec Curl sans surcharge de mémoire

Lors du téléchargement de fichiers distants volumineux à l'aide de cURL, le comportement par défaut consiste à lire l'intégralité du fichier en mémoire peut devenir problématique, en particulier pour les données volumineuses. Pour relever ce défi, envisagez l'approche optimisée suivante :

Au lieu de lire le fichier téléchargé en mémoire, nous pouvons le diffuser directement sur le disque en utilisant le code modifié suivant :

<?php
set_time_limit(0);
// Specify the destination file to save the download
$fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+');
// Replace spaces in the URL with %20 for proper handling
$ch = curl_init(str_replace(" ", "%20", $url));
// Set a high timeout value to prevent interruptions while downloading large files
curl_setopt($ch, CURLOPT_TIMEOUT, 600);
// Stream curl response to disk
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
// Execute the download and close all resources
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>
Copier après la connexion

Ce code L'extrait initialise cURL, définit un délai d'attente approprié et le configure pour écrire la réponse directement dans le fichier spécifié au lieu de le charger en mémoire. En diffusant le téléchargement sur le disque, vous pouvez réduire considérablement l'utilisation de la mémoire tout en gérant des fichiers volumineux.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal