Hallo,
ich habe mir einen Downloadbereich geschrieben, was soweit auch ganz gut funktioniert.
Die Datei wird nach der größte abgefragt, dadurch kann man dann halt anzeigen lassen, ob sie Online oder Offline ist.
Nur bei ftp://... gehts nicht. Was müsste ich denn an meinem Ding anders machen, damit es geht?
Sie soll mir halt die Größe der Datei wiedergeben, damit wäre ja mein Problem gelöst, ist die Datei größer als 0 kb, is der Download verfügbar.
ich habe mir einen Downloadbereich geschrieben, was soweit auch ganz gut funktioniert.
Die Datei wird nach der größte abgefragt, dadurch kann man dann halt anzeigen lassen, ob sie Online oder Offline ist.
Nur bei ftp://... gehts nicht. Was müsste ich denn an meinem Ding anders machen, damit es geht?
Sie soll mir halt die Größe der Datei wiedergeben, damit wäre ja mein Problem gelöst, ist die Datei größer als 0 kb, is der Download verfügbar.
PHP-Code:
function truncate_decimals ($num) {
$shift = pow(10, 2);
return ((floor($num * $shift)) / $shift);
}
function compute_size ($byte_number) {
if ($byte_number < 1024) {
return $byte_number.' bytes';
} elseif ($byte_number < 1048576) {
return truncate_decimals($byte_number / (1024)).' KB';
} elseif ($byte_number < 1073741824) {
return truncate_decimals($byte_number / (1048576)).' MB';
} elseif ($byte_number < 1099511627776) {
return truncate_decimals($byte_number / (1073741824)).' GB';
}
}
function remote_filesize($uri){
$url_p = parse_url ($uri);
$host = $url_p['host'];
if(isset ($url_p['port']))
$remote_port = $url_p['port'];
else
$remote_port = 80;
$fp = @fsockopen ($host, $remote_port);
if(!$fp)
return 0;
else
{
fputs($fp, 'HEAD '.$uri." HTTP/1.1\r\n");
fputs($fp, 'HOST: '.$host."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
$headers = '';
while (!feof ($fp))
$headers .= fgets ($fp, 128);
}
fclose ($fp);
if (preg_match('/Content-Length:\s([0-9].+?)\s/', $headers, $matches))
return $matches[1];
else
return 0;
}
Kommentar