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) {
 // http://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 = 'http://www.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 a new line into a paragraph?
<b> <br> <p>
First line ...<br>
Other line...
Which CSS property can be used to add space between letters?
text-size word-spacing letter-spacing
#id {
  letter-spacing: 2px;
}
What JavaScript function can be used to get access to HTML element with a specified ID?
getElementById() getElementsByTagName() createElement()
var elm = document.getElementById("theID");
var content = elm.innerHTML;
alert(content);
Click on the "echo" correct instruction.
echo "CoursesWeb.net" echo "CoursesWeb.net"; echo ""CoursesWeb.net";
echo "Address URL: http://CoursesWeb.net";
Save image on server from external URL

Last accessed pages

  1. Inheritance - Parent class and Child class (1109)
  2. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (27235)
  3. Get the value of multiple selected checkboxes with same name (4347)
  4. Add, Change, and Remove Attributes with jQuery (21290)
  5. Common PHP Errors and Solutions (4654)

Top accessed pages

  1. Courses Web: PHP-MySQL JavaScript Ajax HTML CSS Flash-AS3 (43787)
  2. PHP-MySQL free course, online tutorials PHP MySQL code (33177)
  3. Read Excel file data in PHP - PhpExcelReader (33092)
  4. Get Attribute (ID, Class, Name, Title, Src) with jQuery (29923)
  5. PHP PDO - exec (INSERT, UPDATE, DELETE) MySQL (27235)