Salut,
mulţuesc pentru răspunsul rapid. Cu funcţia rename() credeam că reuşesc "de la sine" să redenumesc noua imagine
Varianta propusă de tine nu a funcţionat. Am înlocuit acele linii de cod, am salvat prima imagine. Scripul o salva cu denumirea imagine.jpg. Am redenumit eu prima imagine în 1imagine.jpg, nu am mers. Am redenumit în 01imagine.jpg, apoi 01.jpg... 1.jpg, etc. Deci ori nu preula numărul din numele primului fişier, ori nu voia să îl adauge în numele fişierului nou.
Am găsit însă o soluţie foarte simplă, salvez direct în denumirea imaginii data şi ora. La fiecare accesare a scriptului voi avea câte o nouă imagine cu data şi ora salvării.
În ideea că pe viitor mai interesează pe cineva un astfel de script, îl postez mai jos cu modificările de rigoare:
Cod: Selectaţi tot
<?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/4.0 (compatible; MSIE 5.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 = 'http://www.exemplu.net/imgs/imagine.jpg'; // Adresa imaginii
$dirimg = 'imgs/'; // directorul in care e salvat fisierul cu imaginea
$localfile = $dirimg. date('Y.m.d_H.i.s').".jpg"; // seteaza numele fisierului cu data si ora la care a fost salvat
$fp = fopen($localfile,'wb');
fwrite($fp, getContentUrl($src));
fclose($fp);
// Test, afiseaza imaginea salvata
echo '<img src="'. $localfile .'" />';
?>
Scriptul îşi face treaba de minune şi îţi mulţumesc foarte mult pentru el!
Ca fapt divers, aş vrea să folosesc tot acest script şi pentru a captura imagni preluate de pe un webcam. De exemplu un webcam de la jurnalul.ro. Mă gândeam să apelez scriptul prin Cron Job şi de ex o dată la o jumătate de oră să salvez câte o imagine preluată de cameră. Problema e că jurnalul.ro are, după cum am înţeles, un delay de 0,6 sec (sau pe aproape) iar scriptul de faţă nu reuşeşte să salveze o imagine/frame (filmarea afişată de ei pe site fiind mai mult o animaţie făcută din fram-uri).