Téléchargement de fichiers volumineux avec Curl : une alternative à la lecture en mémoire
Question : Comment surmonter les contraintes de mémoire lors du téléchargement de fichiers volumineux à l'aide curl, qui lit généralement en mémoire ?
Ce problème survient dans les situations où la taille du fichier dépasse la mémoire disponible sur le serveur. Une approche plus efficace consiste à diffuser le fichier directement sur le disque, en contournant entièrement la mémoire.
Réponse :
<?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); ?>
Dans ce code, les modifications suivantes sont essentielles :
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!