Codul prezentat in aceasta pagina poate fi folosit pentru a salva / copia pe server imagini de la o adresa URL externa.

- Important: Daca lucrati pe sistem Linux, PHP trebuie sa aibe permisiuni CHMOD de scriere in directorul in care vor fi salvate fisierele imagini.
<?php
// functie pentru preluare continut de la o adresa URL, cu cURL
// returneaza continutul de la adresa din parametru $url
function getContentUrl($url) {
 // https://coursesweb.net/php-mysql/
  // Setare optiuni pentru 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);    // Urmareste raspunsurile redirectionate

  // obtine continutul, da eroare daca e 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';       // Adresa imaginii
$dirimg = 'imgs/';            // directorul in care e salvat fisierul cu imaginea
$localfile = $dirimg. basename($src);         // seteaza numele fisierului acelasi cu numele imaginii de la sursa

// creaza fisierul cu imaginea pe server
file_put_contents($localfile, getContentUrl($src));

// Test, afiseaza imaginea salvata
echo '<img src="'. $localfile .'" />';
?>
Daca fisierul cu acel nume e deja in directorul din $dirimg, va fi inlocuit cu noua imagine.
Daca vreti sa nu inlocuiti fisierul vechi, ci sa salvati imaginea intr-un fisier cu alt nume, inlocuiti aceasta linie:
file_put_contents($localfile, getContentUrl($src));
Cu acest cod:
// primeste adresa fisierului, prin referinta
function setLocalfile(&$localfile) {
  GLOBAL $dirimg;
  $imgnm = basename($localfile);      // obtine numele fisierului
  preg_match('/^[0-9]*/i', $imgnm, $nrimg);      // preia numarul de la inceputul numelui
  if($nrimg[0] === '') $imgnm = '0_'. $imgnm;   // daca nu e vreun numar, seteaza 0
  else $imgnm = str_replace($nrimg[0], $nrimg[0] + 1, $imgnm);       // inlocuieste numarul cu urmatorul
  $localfile = $dirimg. $imgnm;        // seteaza noul nume, transmis prin referinta la $localfile
  if(file_exists($dirimg. $imgnm)) setLocalfile($localfile);        // apel3eaza sa creeze alt nume, daca exista deja
}

// daca fisierul exista in $dirimg, apeleaza setLocalfile() pt a crea alt nume, consecutiv
if(file_exists($localfile)) setLocalfile($localfile);

// creaza fisierul cu imaginea pe server
file_put_contents($localfile, getContentUrl($src));
- Acest cod, functia setLocalfile() defineste un nou nume de fisier, cu un numar consecutiv la inceput (image.png, 0_image.png, 1_image.png, ...).

- Functia getContentUrl() poate fi utilizata pentru a prelua si continut HTML de la o pagina externa.

Un Test simplu in fiecare zi

HTML
CSS
JavaScript
PHP-MySQL
Engleza
Spaniola
Care tag defineste zona de click intr-o harta creata dintr-o imagine?
<map> <img> <area>
<img src="image.jpg" usemap="#map1">
<map name="map1">
  <area shape="rect" coords="9, 120, 56, 149" href="#">
  <area shape="rect" coords="100, 200, 156, 249" href="#">
</map>
Ce proprietate CSS indica ce sa se intample cand continutul unui element depaseste dimensiunile lui?
display overflow position
#id {
  overflow: auto;
}
Clic pe evenimentul care este declansat cand mouse-ul e deasupra unui obiect.
onclick onmouseover onmouseout
document.getElementById("id").onmouseover = function(){
  document.write("Sa ai Viata Buna");
}
Indicati variabila PHP ce contine datele adaugate in adresa URL, dupa caracterul "?".
$_SESSION $_GET $_POST
if(isset($_GET["id"])) {
  echo $_GET["id"];
}
Clic pe pronumele reflexiv care e potrivit in propozitia: "Marc is the boy ... won the prize".
who which whoever
Marc is the boy who won the prize.
- Marc e baiatul care a castigat premiul.
Clic pe pronumele reflexiv care e potrivit in propozitia: "Voy a ver al pintor de ... les hablé ayer".
que quien cuyo
Voy a ver al pintor de quien les hablé ayer.
- Ma duc sa vad pictorul despre care ti-am vorbit ieri.
Salveaza pe server imagine de la adresa URL

Last accessed pages

  1. Verbe modale - SHALL, SHOULD, OUGHT TO, WILL, WOULD, USED TO, BE TO, DARE (13440)
  2. Introducere in HTML (8249)
  3. Aliniere DIV-uri pe aceeasi linie (963)
  4. Caractere speciale - Entitati HTML (2794)
  5. Viitoru continuu - Exercitii si teste incepatori (1840)

Popular pages this month

  1. Gramatica limbii engleze - Prezentare Generala (2565)
  2. Cursuri si Tutoriale: Engleza, Spaniola, HTML, CSS, Php-Mysql, JavaScript, Ajax (821)
  3. Gramatica limbii spaniole. Indrumator si prezentare generala (642)
  4. Alphabet and Pronunciation - Alfabetul si pronuntia in limba engleza (594)
  5. Prezentul simplu si continuu - Present Tense Simple and Continuous (565)