Copiare un file con PHP da altri host

Una semplice funzione per copiare file in locale anche da remoto

Quando lavoriamo a processi di elaborazione che implicano l’uso di file localizzati su host differenti dal nostro, che può essere un file csv con all’interno degli opendata, è sempre buona norma eseguire una copia del file nel nostro host ed eseguire l’elaborazione in locale. Solo successivamente, ad elaborazione ultimata, decideremo se archiviare il file storicizzandolo, oppure se eliminarlo definitivamente.

In PHP è possibile eseguire quest’operazione leggendo il file sorgente con la funzione file_get_contents, e andando a scrivere il suo contenuto in un nuovo file. Per informazioni complete sulla scrittura dei file con PHP potete dare un occhio alla nostra guida Gestire i file con PHP.

Con questa semplice funzione è possibile copiare in locale un file anche da un altro dominio

<?php
function copy_file($from,$to) {
	$copy_url = $from;
	$to_url = file_get_contents($copy_url);
	$fp = fopen($to, 'w');
	fwrite($fp, $to_url);
	fclose($fp);
}
?>

basterà ovviamente indicare le due posizioni in $from e in $to. La funzione non ritorna alcuna risposta, ma possiamo personalizzarla in modo da fargliela ritornare (ad esempio un true o false per poter gestire tutte le eccezioni del caso).

Controlliamo ciclicamente il funzionamento dei link nei nostri articoli. Se noti dei link che non funzionano segnalacelo tra i commenti. Se hai apprezzato l'articolo considera l'idea di sostenere il blog anche con una piccola donazione. Grazie. Patreon / Ko-fi / Liberapay / Paypal

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *