Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Home ~ Php :: Salvare immagini da remoto con cURL :: Indice Php

Salvare immagini da remoto con cURL

Categoria: Php Inserito il: 05-10-2012 Stampa (20649 click)

PHP fornisce il supporto per la libreria libcurl che mette a disposizione delle pratiche funzionalità concepite per effettuare connessioni con varie tipologie di server, comunicare con essi e manipolare le risorse accessibili da remoto; tali procedure potranno essere effettuate attraverso differenti protocolli tra cui anche HTTP, HTTPS e FTP, in presenza o meno di certificati e procedure per l'autenticazione.

Un'applicazione pratica delle librerie cURL di PHP potrebbe essere per esempio quella che prevede il salvataggio in locale di un'immagine remota; questa operazione potrà essere portata a termine con successo grazie ad una semplica funzione come la seguente:

/* la funzione accetta come parametri
# l'immagine da salvare (collegamento assoluto)
## il percorso scelto per il salvataggio
*/
function salvataggio_immagine($immagine,$percorso){
	# inizializzazione della sessione cURL
	$sessione_curl = curl_init($immagine);
	# opzioni per il trasferimento della risorsa
	curl_setopt($sessione_curl, CURLOPT_HEADER, 0);
	curl_setopt($sessione_curl, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($sessione_curl, CURLOPT_BINARYTRANSFER,1);
	# esecuzione e chiusura della sessione cURL
	$dati_immagine = curl_exec($sessione_curl);
	curl_close ($sessione_curl);
	# controllo sulla preesistenza del file
	if(file_exists($percorso)){
	# cancellazione in caso di file preesistente
		unlink($percorso);
	}
	# apertura di un collegamento alla risorsa
	# salvataggio del file e chiusura del collegamento 
	$link_risorsa = fopen($percorso,'x');
	fwrite($link_risorsa, $dati_immagine);
	fclose($link_risorsa);
}

La funzione presentata potrà essere utilizzata passando ad essa i parametri richiesti al momento della chiamata:

/*
utilizzo della funzione
*/
# definizione dei parametri
$immagine = "http://sito.it/images/logo.png";
$percorso = "img/salvataggio.png";
# chiamata alla funzione
salvataggio_immagine($immagine,$percorso);

Il codice proposto potrebbe risultare particolarmente utile nel caso in cui si lavori con risorse remote che non sono accessibili direttamente per via della disattivazione della direttiva allow_url_fopen nel PHP.ini.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle pił importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Form e metodo POST
Il metodo GET, pur utilissimo, pone dei problemi di sicurezza non indifferenti in sede di sviluppo: innanzitutto bisogna considerare che... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti