Enregistrer une image sur mon serveur en PHP

hcase -  
martouf Messages postés 45 Statut Membre -
Bonjour,

Voilà, il existe, sur un site internet qui ne m'appartient pas, des images ayant chacune un nom particulier (que je connais) en png. Je voudrais, à la demande (donc lors du lancement d'un certain script php), récupérer une de ces images, en désignant dans le script le chemin exact jusqu'à cette image. Je voudrais qu'en ayant simplement l'url de cette image, php enregistre cette image sur MON serveur, dans un dossier particulier, et que cette image garde son nom d'origine (ou pas). Je m'arrache les cheveux à trouver quelque chose de tel... Je n'ai aucune base de script à fournir vu que tout ce que j'ai essayé échoue, car la plupart du temps, les fonctions trouvées ne font pas ce que je voudrais...
Si quelqu'un peut m'aider, ce serait génial ! Merci d'avance :)

PS: Je sais que le site en question autorise la récupération des images, donc cela ne devrait pas poser de problème.

3 réponses

  1. Profil bloqué
     
    Donc en fait, vous voulez aspirer les images d'un site... faites quand même attention aux droits d'auteur qu'il y a sur les images...

    Ceci dit, une recherche sur la doc de PHP vous aurez apportée une réponse, concrètement vous voulez ouvrir un fichier et l'enregistrer quelque part et PHP a justement des fonctions pour ça :

    file_get_contents -- Lit tout un fichier dans une chaîne
    file_put_contents -- Écrit un contenu dans un fichier

    Si vous avez déjà essayé ces deux fonctions et que cela ne fonctionne pas, il faudra vous reposer la question, à savoir si le site autorise vraiment la récupération des images.

    Ceci dit, un site qui présente le même contenu qu'un autre site n'est jamais très bien vu, à bon entendeur.
    2
  2. hcase
     
    Ah non je ne les voles pas, je ne les aspires pas ^^ Il s'agit à vrai dire de skins minecraft, et je souhaitais pouvoir récupérer ceux des joueurs présent sur mon serveur minecraft, pour les afficher ensuite dans leur profils sur mon forum. Mais j'ai résolu mon problème, j'ai utilisé la commande copy, et en fait le probleme venait du fait que je n'avais pas mis "allow_url_open" sur On dans php.ini, ce qui bloquait le processus. Merci quand même :) :)

    Pour ceux qui auraient besoin du code:

    <?php
    $file = 'http://lesite.com/images/nomdelimage.png';
    $newfile = 'mesimages/nomdelimage.png';
    copy($file,$newfile);
    ?>

    Sachant que les deux noms d'image peuvent etre different
    1
    1. martouf Messages postés 45 Statut Membre 18
       
      Désolé de déterrer mais j'ai bien allow_url_fopen sur "On" et pourtant mon script (qui est identique à celui au dessus) revoie une erreur :
       Warning: copy(http://**.**.***.***:21092/image.jpg) [function.copy]: failed to open stream: Network is unreachable in /mnt/133/sda/2/d/*******/********.php on line 13
      le fichier est dans MurImg/25-03-2013-11-26.jpg  


      Pourtant en local (avec wampserver) ce même script fonctionne très bien.
      info sur mon serveur ici : http://piegaym.free.fr/info.php/

      Si vous pouvez m'aider (je débute en PHP), je vous remercie d'avance
      Martin
      0
  3. Profil bloqué
     
    Ah ok je préfère lire ça ^^

    Merci du code, ça en aidera peut-être d'autres ;)
    0