Table des matières
Utilisation de file_get_contents () et de file_put_contents ()
Utilisation de Curl (recommandé pour un meilleur contrôle)
Ajout d'une gestion des erreurs
Gestion des fichiers volumineux ou du streaming
Maison développement back-end tutoriel php Comment télécharger un fichier à partir d'une URL en PHP?

Comment télécharger un fichier à partir d'une URL en PHP?

Sep 24, 2025 am 05:45 AM
php Téléchargement de fichiers

Réponse: Utilisez File_get_Contents et Curl pour télécharger des fichiers d'URL, le premier est simple mais restreint, tandis que le second est plus flexible et prend en charge le streaming. Les exemples incluent la lecture et la rédaction directement des fichiers, les options de paramètre d'initialisation de boucles et la sauvegarde, l'ajout d'une gestion des erreurs et la vérification de l'état HTTP. Les fichiers volumineux sont recommandés pour diffuser le téléchargement en blocs pour enregistrer la mémoire, en veillant à ce que le répertoire soit écrit et gère correctement les exceptions.

Comment télécharger un fichier à partir d'une URL en PHP?

Pour télécharger un fichier à partir d'une URL dans PHP, vous pouvez utiliser des fonctions intégrées comme file_get_contents () et file_put_contents () , ou exploitez Curl pour plus de contrôle sur la demande. Vous trouverez ci-dessous des méthodes courantes et efficaces.

Utilisation de file_get_contents () et de file_put_contents ()

Il s'agit de la méthode la plus simple lorsque perte_url_fopen est activée sur votre serveur.

Remplissez le contenu du fichier à partir d'une URL et enregistrez-le au système de fichiers local:

  • Utilisez File_get_Contents () pour récupérer les données de l'URL
  • Utilisez file_put_contents () pour l'écrire dans un fichier local

Exemple:

$ url = 'https://example.com/file.pdf';
$ localfile = 'downloads / file.pdf';

$ content = file_get_contents ($ url);
file_put_contents ($ localfile, $ contenu);

Remarque: Cette méthode peut échouer si le serveur distant bloque les demandes ou si le fichier est grand et dépasse les limites de mémoire.

Utilisation de Curl (recommandé pour un meilleur contrôle)

Curl vous donne plus de flexibilité, en particulier avec les en-têtes, les délais d'attente et la gestion des erreurs.

Mesures:

  • Initialiser une session Curl avec Curl_init ()
  • Définir des options comme l'URL, le transfert de retour et le délai d'expiration
  • Exécuter et enregistrer le résultat dans un fichier

Exemple:

$ url = 'https://example.com/file.zip';
$ localfile = 'downloads / file.zip';

$ ch = curl_init ($ url);
$ fp = fopen ($ localfile, 'wb');

curl_setopt ($ ch, curlopt_file, $ fp);
curl_setopt ($ ch, curlopt_follocation, true);
curl_setopt ($ ch, curlopt_timeout, 60);

curl_exec ($ ch);
curl_close ($ ch);
fclose ($ fp);

Cela diffuse le fichier directement sur le disque, qui est économe en mémoire pour les fichiers volumineux.

Ajout d'une gestion des erreurs

Vérifiez toujours les erreurs, en particulier avec les opérations de réseau.

Avec Curl, vous pouvez vérifier le succès à l'aide de curl_error ():

if (curl_errno ($ ch)) {
Echo 'Erreur de boucle:'. curl_error ($ ch);
}
curl_close ($ ch);

Vous pouvez également vérifier les codes de réponse HTTP à l'aide de Curl_getInfo ($ ch, curlinfo_http_code).

Gestion des fichiers volumineux ou du streaming

Pour des fichiers très grands, envisagez de streaming en morceaux pour éviter les problèmes de mémoire.

Curl avec curlopt_writeFunction vous permet de traiter des données pièce par pièce:

curl_setopt ($ ch, curlopt_writeFunction, fonction ($ ch, $ data) use ($ fp) {
return fwrite ($ fp, $ data);
});

Cela garantit une utilisation minimale de la mémoire lors du téléchargement.

Fondamentalement, choisissez simplement la méthode qui correspond à la configuration et aux besoins de votre serveur. Curl est plus fiable et plus flexible, tandis que File_get_Contents fonctionne bien pour les cas simples. Assurez-vous que le répertoire cible est écrite et gérez les erreurs gracieusement.

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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT

Stock Market GPT

Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment vérifier les autorisations de fichiers dans PHP? Comment vérifier les autorisations de fichiers dans PHP? Sep 22, 2025 am 06:27 AM

UseFilePerms () togetFilePermissionsAsanIntegerAndFormatisingSprintf ('% o') todisplayunix-stylepermisessions lisilit0644

Comment implémenter un modèle singleton en PHP? Comment implémenter un modèle singleton en PHP? Sep 25, 2025 am 12:27 AM

Le modèle Singleton garantit qu'une classe n'a qu'une seule instance et fournit un point d'accès global pour les scénarios où un seul objet coordonne le fonctionnement du système, tels que les connexions de base de données ou la gestion de la configuration. 2. Sa structure de base comprend: les instances de stockage d'attribut statiques privées, les constructeurs privés empêchent la création externe, les méthodes de clonage privé empêchent la copie et les méthodes statiques publiques (telles que getInstance ()) pour obtenir des instances. 3. Obtenez une instance unique dans PHP en appelant la méthode GetInstance () et renvoie la même référence d'objet, peu importe le nombre de fois où il est appelé. 4. Selon le modèle de demande PHP standard, la sécurité des threads n'est pas nécessaire pour être prise en compte, mais les problèmes de synchronisation doivent être prêts à prêter attention dans des environnements à long terme ou multi-thread, et PHP lui-même ne prend pas en charge le mécanisme de verrouillage natif. 5. Bien que les singletons soient utiles,

Comment obtenir des arguments en ligne de commande dans un script PHP? Comment obtenir des arguments en ligne de commande dans un script PHP? Sep 22, 2025 am 06:19 AM

Utilisez $ argv et $ argc pour obtenir des paramètres de ligne de commande PHP. $ argc est le nombre de paramètres et $ argv est le tableau des paramètres. Par exemple, dans phpsscript.phphelloworld, $ argv = [script.php ', «bonjour», «monde»]; Utilisez $ argv [1] et autres pour accéder aux paramètres spécifiques; Utilisez getOPT () pour gérer les options courtes (-f) et les longues options (--fichier) dans des scénarios complexes.

Comment utiliser l'opérateur de fusion nul (??) en PHP? Comment utiliser l'opérateur de fusion nul (??) en PHP? Sep 25, 2025 am 01:28 AM

Réponse: L'opérateur de fusion vide de PHP (??) est utilisé pour vérifier si une variable ou une clé de tableau existe et n'est pas nul. S'il est vrai, il renvoie sa valeur, sinon il renvoie la valeur par défaut. Il évite l'utilisation de longs chèques ISSet (), convient pour gérer les variables et les clés de tableau non définies, telles que $ username = $ userInput ?? 'invité, et prend en charge les appels de chaîne, tels que $ thème = $ usertheme?

Comment obtenir des paramètres URL en PHP? Comment obtenir des paramètres URL en PHP? Sep 24, 2025 am 05:11 AM

Utilisez $ _get pour obtenir des paramètres URL, tels que? Name = John & Age = 25; Vérifiez l'existence via les opérateurs de fusion ISSET ou vide, et filtrez et vérifiez les données avec filter_input pour assurer la sécurité.

Comment créer un fichier zip dans PHP? Comment créer un fichier zip dans PHP? Sep 22, 2025 am 06:06 AM

USETHEZIPACHIVIVECLASSTOCREATEAZIPFILEINPHPBYInSTANTIATIAGETHEOBJECT, OpenTheRearchveWithOpen (), AddingFilesViaAddFile () OraddFromString (), et ClosingItWithClose () TOSAVE; toujoursCheckOpen () returnValueNenSurewritePerMissions.

Comment créer un objet JSON en PHP? Comment créer un objet JSON en PHP? Sep 22, 2025 am 04:13 AM

Utilisez la fonction json_encode () pour convertir des tableaux ou des objets PHP en chaînes JSON. Par exemple, le tableau associatif ["nom" => "John", "Age" => 30, "City" => "Newyork"] Sortie {"Name": "John", "Age": 30, "City": "Newyork &

Quelle est la différence entre HTMLSpecialChars et Htmlentities dans PHP? Quelle est la différence entre HTMLSpecialChars et Htmlentities dans PHP? Sep 23, 2025 am 01:11 AM

HTMLSpecialChars échappe uniquement à des métacharacteurs HTML tels que & "', qui convient à la sortie sûre conventionnelle; les HTMLentités convertissent tous les caractères mappables (tels que Éñ ©) en entités HTML, ce qui convient pour gérer le texte non ASCII et les scénarios hautement compatibilité.

See all articles