mamma mia james!!
php.net/manual/en/function.fread.php, due righe sotto al codice che hai postato tu vi è 'Example #3 Remote fread() examples' a questo basta aggiungere l'fwrite
risulta qualcosa di simile a questo:
$url = "http://www.example.com/";
$img = "img.jpg";
$path = "/var/www/www.sito.com/images";
$handle = fopen("$url/$img", "rb");
$contents = '';
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
$handle = fopen("$path/$img", 'wb');
fwrite($handle, $contents);
fclose($handle);
senza controlli di errore, e senza controllo di che cosa esista già, il che non va d'accordo con la banda limitata.
ma soprattutto questo codice NON HA CONTROLLI DI SICUREZZA su che si carica e su dove lo si mette.
date le tue competenze, e dato che si tratta di attività d'impresa, ti consiglierei di farlo tu.
ti dico ciò con sincerità e senza presunzione, dato che, nonostante ti avessi segnalato l'errore, hai ancora sbagliato il codice; quello che hai indicato non può lavorare sugli stream (nella link citato: when reading remote files [...] reading will stop after a packet is available) e che non puoi conoscere la dimensione di un file remoto tramite http. inoltre il file da scrivere non deve essere aperto per lettura ed aggiunta ma solo per scrittura ed in modalità binaria. ma hai letto?
ciao,
marco