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 este element de tip bloc?
<div> <img> <span><div>Web Programming and Development</div>
Care cod CSS afiseaza textul subliniat?
font-style: italic; text-decoration: underline; font-weight: 500;h2 {
text-decoration: underline;
}
Clic pe functia JavaScript care apeleaza o alta functie dupa un anumit timp.
insertBefore() setTimeout() querySelector()function someFunction() { alert("CoursesWeb.net"); }
setTimeout("someFunction()", 2000);
Clic pe instructiunea care returneaza numarul total de elemente dintr-un array asociativ.
count($array) count($array, 1) strlen()$food =["fruits" =>["banana", "mar"), "veggie" =>["ceapa", "rosie"));
$nr_food = count($food, 1);
echo $nr_food; // 6
Indicati Viitorul Perfect la negativ al verbului din paranteze, in propozitia: "The child (to not play) by Sunday".
has't played haven't been playing will haven't playedThe child will haven't played by Sunday.
- Copilul nu s-ar fi jucat pana duminica.
Indicati Viitorul Perfect pentru verbul "contar" (a povesti) la forma "Él".
habrá contado va a contar contabaÉl no habrá contado el cuento.
- El nu ar fi spus povestea.