Téléchargement de fichiers volumineux à partir d'URL sans problèmes de mémoire
Les développeurs Web sont généralement confrontés au défi de télécharger des fichiers volumineux à partir d'URL distantes. Bien que l'approche simple utilisant file_get_contents() et file_put_contents() puisse suffire pour les fichiers plus petits, elle ne suffit pas pour ceux qui dépassent les limites de mémoire. Ce problème a soulevé la question : comment télécharger des fichiers volumineux de manière incrémentielle sans épuiser les ressources mémoire.
Heureusement, PHP propose une solution élégante qui répond à ce problème. Depuis la version 5.1.0, file_put_contents() prend en charge l'écriture de données en morceaux en passant un handle de flux comme deuxième argument.
Voici le code modifié qui exploite cette fonctionnalité :
file_put_contents("Tmpfile.zip", fopen("http://someurl/file.zip", 'r'));
Ceci le code fonctionne comme suit :
Le manuel PHP explique que passer un handle de flux à file_put_contents() déclenche la copie du tampon restant du diffuser vers le fichier cible. Ce mécanisme reflète efficacement la fonctionnalité de stream_copy_to_stream().
En employant cette technique, les développeurs peuvent télécharger sans effort des fichiers volumineux sans rencontrer de contraintes de mémoire, garantissant ainsi un transfert de données transparent, même pour les tailles de fichiers les plus volumineuses.
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!