The code presented in this page can be used to save / copy images on server from external URL address.

- Important: If you work on Linux system, PHP must have CHMOD write permisions in the directory in which the image file will be saved.
<?php
// function to get content from a URL address, with cURL
// returns the content of the page with the address pased to $url parameter
function getContentUrl($url) {
 // https://coursesweb.net/php-mysql/
  // Seting options for cURL
  $ch = curl_init($url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
  curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/21.0 (compatible; MSIE 8.01; Windows NT 5.0)');
  curl_setopt($ch, CURLOPT_TIMEOUT, 200);
  curl_setopt($ch, CURLOPT_AUTOREFERER, false);
  curl_setopt($ch, CURLOPT_REFERER, 'http://google.com');
  curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);    // Follows redirect responses

  // gets the file content, trigger error if false
  $file = curl_exec($ch);
  if($file === false) trigger_error(curl_error($ch));

  curl_close ($ch);
  return $file;
}

$src = 'https://marplo.net/imgs/webcourses.gif';       // Image address
$dirimg = 'imgs/';            // directory in which the image will be saved
$localfile = $dirimg. basename($src);         // set image name the same as the file name of the source

// create the file with the image on the server
file_put_contents($localfile, getContentUrl($src));

// Test, show the saved image
echo '<img src="'. $localfile .'" />';
?>
If the image file already exists on server, in the directory from $dirimg, the file will be replaced with the new image.
If you want to not replace the old file, but to save the image with another name, replace this line:
file_put_contents($localfile, getContentUrl($src));
With this code:
// receives the file address, passed by refference
function setLocalfile(&$localfile) {
  GLOBAL $dirimg;
  $imgnm = basename($localfile);      // gets the file name
  preg_match('/^[0-9]*/i', $imgnm, $nrimg);      // gets the number from beginning of file name
  if($nrimg[0] === '') $imgnm = '0_'. $imgnm;   // if no number, sets 0
  else $imgnm = str_replace($nrimg[0], $nrimg[0] + 1, $imgnm);       // replace the number with next one
  $localfile = $dirimg. $imgnm;        // sets the new name, passed by refference to $localfile
  if(file_exists($dirimg. $imgnm)) setLocalfile($localfile);        // calls the function to set another name
}

// if the file exists in $dirimg, calls setLocalfile() to set a new file name
if(file_exists($localfile)) setLocalfile($localfile);

// create the file with the image on the server
file_put_contents($localfile, getContentUrl($src));
- This code, the setLocalfile() function sets a new name with a consecutive number at the beginning of the file name (image.png, 0_image.png, 1_image.png, ...).

- The getContentUrl() can also be used to get the page content of an URL address.

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which tag adds an image in web page?
<div> <img> <span>
<img src="http://coursesweb.net/imgs/webcourses.gif" width="191" height="63" alt="Courses-Web" />
Which of these CSS codes displays the text oblique?
font-style: italic; text-decoration: underline; font-weight: 500;
#id {
  font-style: italic;
}
Click on the jQuery function used to hide with animation a HTML element.
click() hide() show()
$(document).ready(function() {
  $(".a_class").click(function(){ $(this).hide("slow"); });
});
Click on the correctly defined function in PHP.
fname function() {} function fname() {} function $fname() {};
function fname($a, $b) {
  echo $a * $b;
}
Save image on server from external URL

Last accessed pages

  1. PHP getElementById and getElementsByTagName (25326)
  2. Check and Validate input field when loses focus, with PHP via Ajax (4624)
  3. Contact page - CoursesWeb (8486)
  4. Tabs effect with CSS (9198)
  5. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (15030)

Popular pages this month

  1. Making DIV Contents Scroll Horizontally, with multiple Div`s inside (2416)
  2. Contact page - CoursesWeb (2335)
  3. Tabs effect with CSS (2326)
  4. Insert, Select and Update NULL value in MySQL (1315)
  5. PHP getElementById and getElementsByTagName (905)