Og SIDSTE version (jeg prøver virkeligt at lade være med at rette mere i det :):
<?
function get_file($min_size_bytes, $max_size_bytes, $remote_host, $remote_file, $locale_file) {
$fp = fsockopen($remote_host, 80) or die("Kunne ikke forbinde til host.");
$fp_locale = fopen($locale_file, "wb") or die("Kunne ikke åbne locale_file for skrivning");
socket_set_timeout($fp, 2);
fputs($fp, "GET ".$remote_file." HTTP/1.0\r\nHost: ".$remote_host."\r\n\r\n");
$image_data_flag = false;
$filesize = false;
while (!feof($fp)) {
# fgets er ikke binary-safe, så vi bruger fread, når vi har image data
$input = $image_data_flag ? fread($fp, $filesize) : fgets($fp, 128);
if (!$filesize && eregi("Content-Length: ([0-9]+)", $input, $regs)) {
if($regs[1] < $min_size_bytes || $regs[1] > $max_size_bytes) {
fclose($fp);
fclose($fp_locale);
return "Fil fundet, men matcher ikke angivet størrelse. Størrelse i bytes: ".$regs[1];
}
$filesize = $regs[1];
}
if ($image_data_flag) {
fwrite($fp_locale, $input);
break;
}
if ($filesize > 0 && $input == "\r\n")
$image_data_flag = true;
}
fclose($fp);
fclose($fp_locale);
if (!$filesize)
return "Remote fil kunne ikke findes";
else if ($filesize == @filesize($locale_file))
return "Fil er kopieret ialt: ".$filesize." bytes";
else {
@unlink($locale_file);
return "Kunne ikke kopiere fil data. Der er ryddet op";
}
}
echo get_file(200, 5000, "
www.eksperten.dk", "/img/eksperten_logo.gif", "files/exp_copy.gif");
?>