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); ?>
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!