[RESOLU] Sauvegarde des images de mon forum

Petit nouveau ! | 6 Messages

17 janv. 2018, 11:36

Bonjour,
Suite à la fermeture d'un hébergeur d'images, je voudrais faire une sauvegarde des images contenues dans mon forum.
J'ai bricolé un petit script PHP très simple (trop simple...) que je vous livre ici:

Code : Tout sélectionner

?php $url = 'https://static.fnac-static.com/multimedia/Images/FR/NR/f4/7c/8a/9075956/1507-1/tsp20171130110358/X-Men-ResurrXion-n-3.jpg'; // source $fichier = $_SERVER['DOCUMENT_ROOT'].'/image_test1.jpg'; // target copy($url, $fichier); ?>
Là, ça fonctionne car la variable $url contient l'url d'une image (image test prise sur la FNAC) et je retrouve bien cette image avec pour nom image_test1.jpg

Pour le cas réel, celui de mon forum, l'image n'est pas directement une URL mais fournie par un script PHP.
J'ai modifié tel quel mon programme:

Code : Tout sélectionner

?php $url = "http://www.hostingpics.net/viewer.php?id=84550320141025122402.jpg"; $fichier = $_SERVER['DOCUMENT_ROOT'].'/image_test2.jpg'; // target file copy($url, $fichier); ?>
Je m'en doutais un peu, ça ne fonctionne pas. :| Le fichier image_test2.jpg n'est pas une image mais un script
Ce n'est pas ce que je veux même si ce fichier créé contient des liens vers mon image...

Pouvez-vous m'aider ? Merci d'avance. :D

Pour info, voici le contenu du fichier que j'obtiens (à la place de l'image souhaitée)

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr"> <head><title>20141025122402 - HostingPics.net - Hébergement d'images gratuit</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/> <meta http-equiv="content-language" content="fr"/> <meta name="copyright" content="Hostingpics"/> <meta name="description" content="Image h&eacute;berg&eacute; sur HostingPics: 84550320141025122402.jpg"/> <meta name="keywords" lang="fr" content="hostingpics, image, hébergeur, partage, photos, 84550320141025122402.jpg"/> <link rel="stylesheet" href="/style/style-def.css" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link rel="shortcuticon" href="favicon.ico"> <style type="text/css"> body, p, td { color: #111111; } .plusminus { padding: 1px; background-color: #F7F7F7; border: 1px solid #111111; } input, textarea, select { font-family: Verdana, Arial; font-size: 11px; color: #111111; border: solid 1px; border-color: #DBDBDB; background-color: #ffffff; a:link { color: red; } </style> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript" src="/js/jquery.rotate.1-1.js"></script> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-4204544-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <div id='216-6'><script src='//ads.themoneytizer.com/s/gen.js?type=6'></script><script src='//ads.themoneytizer.com/s/requestform.js?siteId=216&formatId=6'></script></div> </head> <body bgcolor="#f7f7f7"><div align="center"> <a href="http://www.hostingpics.net/"><img src="http://www.hostingpics.net/images/logo.gif" alt="Hébergement d'images"></a> <p>Hostingpics.net <b><a href="http://www.hostingpics.net/">Hébergement d'images gratuit</a></b></p> </div> <center> <h1></h1> <br> <div id='216-1'><script src='//ads.themoneytizer.com/s/gen.js?type=1'></script><script src='//ads.themoneytizer.com/s/requestform.js?siteId=216&formatId=1'></script></div> <br/> </center> <br><div id="img_viewer_frame" align="center"> <br /> <a href='https://img11.hostingpics.net/pics/84550320141025122402.jpg'><img id="img_viewer" class="border" src='https://img11.hostingpics.net/pics/84550320141025122402.jpg' alt='20141025122402' title='20141025122402'></a></div> <!-- Twitter Cards --> <meta name="twitter:card" value="photo" /> <meta name="twitter:title" value="" /> <meta name="twitter:description" value="20141025122402" /> <meta name="twitter:url" value="https://www.hostingpics.net/viewer.php?id=84550320141025122402.jpg" /> <meta name="twitter:image" value="https://img11.hostingpics.net/pics/84550320141025122402.jpg" /> <br /> <center> <img style="cursor:pointer;" src="/style/images/rotate_left.png" title="Pivoter l'image sur la gauche" onclick="rotate('left');">&nbsp;&nbsp;&nbsp;<img style="cursor:pointer;" src="/style/images/rotate_right.png" title="Pivoter l'image sur la droite" onclick="rotate('right');">&nbsp;&nbsp;&nbsp;<a href="https://img11.hostingpics.net/pics/84550320141025122402.jpg" title="Agrandir l'image"><img src="/style/images/zoom.png" alt="Agrandir l'image"></a> </center> <br/> &nbsp; <label> <div align="center"> <b>Partager cette page:</b> <input name="textfield" type="text" value="https://www.hostingpics.net/viewer.php?id=84550320141025122402.jpg" onclick="javascript:this.focus(); this.select();" size="60"/> </div> </label> <br /> <center> <div id='216-28'><script src='//ads.themoneytizer.com/s/gen.js?type=28'></script><script src='//ads.themoneytizer.com/s/requestform.js?siteId=216&formatId=28'></script></div> </center> <br> <table class="table_decoration" align="center" border="0" cellpadding="5" cellspacing="0" width="720"> <tbody> <tr> <td align="center"><input value="HostingPics - Hébergement d'images gratuit" onClick="window.location='https://www.hostingpics.net'" type="button"> <form method="post" action="http://www.hostingpics.net/envoi.html" enctype="multipart/form-data" onSubmit="disableme('butan')"> <input name="MAX_FILE_SIZE" value="3145728" type="hidden">Uploadez une image: <input name="refer" value="" type="hidden"> <input type="file" name="photo1" value="" id="photo1" size='40'/> <input name="upload" type="submit" id="butan" style="width: 100px;" value="Hébergez !"> </form> </td> </tr> <tr> <td> <table border="0" cellpadding="3" cellspacing="0"> <tbody> <tr> <td valign="top"></td> </tr> </tbody> </table> </td> </tr> </tbody> </table><br> <div align="center"><a href="https://www.hostingpics.net"></a></div> <SCRIPT LANGUAGE="JavaScript"> function _eStat_Whap_loaded_func(){ eStatWhap.serial("800000207099"); eStatWhap.send(); } (function() { var myscript = document.createElement('script'); myscript.src = "https://w.estat.com/js/whap.js"; myscript.setAttribute('async', 'true'); var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(myscript, s); } )(); </SCRIPT> <div id='216-15'><script src='//ads.themoneytizer.com/s/gen.js?type=15'></script><script src='//ads.themoneytizer.com/s/requestform.js?siteId=216&formatId=15'></script></div> </body> </html>

Petit nouveau ! | 6 Messages

17 janv. 2018, 14:53

Arf ! J'ai trouvé tout seul, dans le cas 2, le retour est une page html et non un fichier JPG... Il suffit donc de stocker la page dans une variable et de chercher la chaine donnant l'URL de l'image. :-)
Et ça marche ! Si une personne intéressée, je placerais le script ici.

Mammouth du PHP | 2703 Messages

17 janv. 2018, 14:59

http://php.net/manual/fr/function.file-get-contents.php pour recuperer le code html de la page.

l'url est dans :
<img id="img_viewer" class="border" src='https://img11.hostingpics.net/pics/8455 ... 122402.jpg' alt='20141025122402' title='20141025122402'>
d'où https://regex101.com/r/a5j7Pv/1