0

I have to download images from url in an xml code and save it to a folder. Is there a way that I can do that? And, if I updated one of the picture, and I want to download it again, what should I do so that images that I download only the one that get updated (only the newest version is downloaded), if an image is not updated it won't be downloaded again. Thank you for your help! the xml example is this:

<item>
<g:main_image_url>https://www.dropbox.com/s/3tsncqxysqdyz1v/whitebag.jpg?dl=0</g:main_image_url>
</item>
<item>
<g:main_image_url>https://www.dropbox.com/s/vwks0iatjut2om4/whiteblackbag.jpg?dl=0</g:main_image_url>
</item>
3
  • this is the complete xml or some part of xml? Commented Nov 10, 2017 at 5:10
  • Show what you've tried so far Commented Nov 10, 2017 at 5:13
  • file_get_contents then file_put_contents Commented Nov 10, 2017 at 5:17

2 Answers 2

1

Try this, It will help you

$imageLink = "GET URL LINK FROM XML";
$random = mt_rand();
$filename = $random . ".jpg";
$path = "/images/";
file_put_contents(getcwd() . $path . $filename, file_get_contents($imageLink));

Get the $imageLink from XML using various string functions...
Happy Coding :-)

Sign up to request clarification or add additional context in comments.

1 Comment

I've solved the code. I'll be running the php script with windows task scheduler, in order to update the image file that I have downloaded. In the 2nd download and so on, I only want to download images that are new. How can I do that? Am I going to use imagesize as the if condition or the image's name?
0

I've come up with the answer, and the code is like this

<?php
ini_set('max_execution_time', 300);
$doc = simplexml_load_file('xml_file.xml');
foreach ( $doc->xpath("//item") as $item )  {
    $name = $item->productname;
    $url = $item->thumbnail_url;
    $img = 'path/to/file/'.$name.'.png';
    file_put_contents($img, file_get_contents($url));    
}

?>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.