Gestion des téléchargements de fichiers volumineux avec Curl : diffusion en continu sur disque
Le téléchargement de fichiers volumineux à l'aide de Curl peut être difficile en raison de contraintes de mémoire. La méthode traditionnelle, qui lit l'intégralité du fichier en mémoire avant de l'écrire sur le disque, peut entraîner des problèmes de performances. Pour surmonter cette limitation, envisagez de diffuser le fichier directement sur le disque.
Voici une solution qui utilise la fonction curl_setopt() pour configurer l'option CURLOPT_FILE. Cette option spécifie un pointeur de fichier où curl peut écrire directement les données téléchargées :
set_time_limit(0); // Disable PHP time limit // Open a file for writing $fp = fopen(dirname(__FILE__) . '/localfile.tmp', 'w+'); // Initialize curl $ch = curl_init(str_replace(" ", "%20", $url)); // Set timeout to a high value curl_setopt($ch, CURLOPT_TIMEOUT, 600); // Write curl response to file curl_setopt($ch, CURLOPT_FILE, $fp); // Follow any redirects curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Execute curl curl_exec($ch); // Close curl and file handlers curl_close($ch); fclose($fp);
Dans ce code amélioré :
En utilisant cette technique, curl peut diffuser les données téléchargées directement sur le disque, en contournant les contraintes de mémoire et permettre une gestion efficace 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!