Maison >développement back-end >tutoriel php >Comment puis-je télécharger des images à partir d'une URL en utilisant PHP et Curl ?

Comment puis-je télécharger des images à partir d'une URL en utilisant PHP et Curl ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-30 14:15:12425parcourir

How Can I Download Images from a URL using PHP and Curl?

Télécharger des fichiers image via une URL à l'aide de PHP et Curl

Enregistrer des fichiers image à partir d'une URL distante sur votre serveur est une tâche courante pour les développeurs Web . Ceci peut être réalisé de manière transparente en utilisant l'extension Curl de PHP.

Le problème :

Un développeur a rencontré des difficultés pour enregistrer un fichier image à partir d'une URL à l'aide de Curl. Le code fourni ne semble pas produire le résultat souhaité.

La solution :

Voici une version modifiée du code qui devrait résoudre le problème :

function grab_image($url, $saveto) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    $raw = curl_exec($ch);
    curl_close($ch);
    if (file_exists($saveto)) {
        unlink($saveto);
    }
    $fp = fopen($saveto, 'x');
    fwrite($fp, $raw);
    fclose($fp);
}

Changements clés :

  • La fonction est renommée en grab_image pour plus de clarté.
  • CURLOPT_HEADER est défini sur 0 pour récupérer uniquement les données de l'image.
  • CURLOPT_BINARYTRANSFER est défini sur 1 pour garantir que l'image est enregistrée sous forme de données binaires.
  • Le le chemin du fichier de sauvegarde est fourni comme deuxième argument pour permettre une nommage.

Conseil supplémentaire :

Dans votre fichier de configuration PHP (php.ini), assurez-vous que allow_url_fopen est activé. Ce paramètre permet à PHP d'ouvrir des fichiers via des URL.

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:
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