İşte en temel yol:
$url = "http://other-site/image.png";
$dir = "/my/local/dir/";
$rfile = fopen($url, "r");
$lfile = fopen($dir . basename($url), "w");
while(!feof($url)) fwrite($lfile, fread($rfile, 1), 1);
fclose($rfile);
fclose($lfile);
Ancak bunu çok ve çok yapıyorsanız (veya ana makineniz uzak sistemlere dosya erişimini engelliyorsanız), daha verimli, biraz daha hızlı ve daha fazla paylaşılan ana bilgisayarda kullanılabilen CURL kullanmayı düşünün.
Ayrıca kullanıcı aracısını bir bottan ziyade bir masaüstü gibi görünecek şekilde taklit edebilirsiniz!
$url = "http://other-site/image.png";
$dir = "/my/local/dir/";
$lfile = fopen($dir . basename($url), "w");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)');
curl_setopt($ch, CURLOPT_FILE, $lfile);
fclose($lfile);
curl_close($ch);
Her iki durumda da, gerçekten bir resim olduğundan emin olmak için GD'den geçirmek isteyebilirsiniz.