Vorgesehende Download-Zeit anzeigen

lp-chester

Erfahrenes Mitglied
Hallo ihr.
Ich wollte euch etwas fragen: Ich möchte für meine HP eine Download-Seite erstellen. Dies ist kein Problem für mich. Ich möchte jetzt aber noch gerne, dass je nachdem welche Datei man anklickt, die Größe der Datei und die vorgesehene Download-Zeit angegeben werden. Ich habe schon hier im Forum und Google gesucht, hab aber nichts gefunden. Villeicht könnt ihr mir ja ein Tutorials zeigen, wo soetwas beschrieben wird, oder mir ein Script geben? Ich bin ein ziemlicher Anfägner in PHP.

Danke, LP-Chester
 
Zuletzt bearbeitet:
Hallo,

die vorgesehene Download-Zeit kann man meines Wissens nach nicht auslesen, da das ja von der Internetverbindung des Users abhängt und du das mit PHP nicht auslesen kannst.

Die Größe einer Datei kannst du mit filesize() ermitteln

mfg
forsterm
 
Re: Vorgesehende Downlaod-Zeit anzeigen

Das Problem ist, dass Du die Geschwindigkeit mit der der User runterlaedt nicht kennst.
Du kannst hoechstens Werte fuer bestimmte Geschwindigkeiten angeben.
Beispiel:
$size ist in Bytes
$speed gibt die Geschwindigkeit in KBit/s an
$dltime enthaelt am Ende die Downloadzeit in Sekunden
PHP:
$dltime=($size/1024)/($speed/8);

Nachtrag: Korrigiert.
$size wird durch 1024 geteilt um von Bytes in KBytes umzurechnen, $speed wird durch 8 geteilt um von KBit/s in KByte/s umzurechnen.
 
Zuletzt bearbeitet:
Du kannst die Dateigröße einfach mit filesize() bestimmen. Diese Funktion gibt die Dateigröße in Byte zurück. Dann teilst du einfach durch tausen und dann nochmals durch bswp. 8 bei ISDN (8 Byte/Sekunde).

PHP:
<?
$groesse=round(filesize($datai)/1024);
// Modem (7 Byte/Sekunde)
$modem=round($groesse/7);
echo "Dauer für Modem: " . $modem . " sek";
?>

Mit freundlichem Gruß
der_maiki
 
Danke für eure Antworten. Reptiler hat eigentlich genau das getroffen, was ich gesucht habe...(etwa so wie auf chip.de). Ich würde mich sehr über eine genauere Beschreibung freuen. Danke, LP-Chester
 
Okay, ich versuch's mal. ;)
Ich nehme jetzt fuer das Beispiel mal an, dass der Dateiname in $datei steht.
PHP:
$size=filesize($datei);
printf("%s - %s Bytes<br>",$datei,$size);
$speed=33.6;
$dltime=($size/1024)/($speed/8);
printf("33.6 KBit/s Modem: %s Sekunden<br>",$dltime);
$speed=56;
$dltime=($size/1024)/($speed/8);
printf("56 KBit/s Modem: %s Sekunden<br>",$dltime);
$speed=64;
$dltime=($size/1024)/($speed/8);
printf("64 KBit/s ISDN: %s Sekunden<br>",$dltime);
$speed=768;
$dltime=($size/1024)/($speed/8);
printf("768 KBit/s DSL: %s Sekunden<br>",$dltime);

Geht auch noch einfacher, z.B. kann man sich eigentlich die Nutzung der Variable $speed sparen.

Nachtrag: Bei meiner Rechnung war was falsch, jetzt sollte es aber gehen.
 
Zuletzt bearbeitet:
Danke reptiler das Script funktioniert sehr gut. Nur ich glaube das es sich "verrechnet" (siehe Grafik). Wo liegt der Fehler?

Danke, LP-Chester
 
Vielen Dank. Jetzt kommen mir die Zahlen schon realistischer vor ;-). Nun noch eine letzte kleine Sache: Ist es möglich, nur eine bestimmte Anzahl von Zahlen, nach em Kommer auszugeben?

Danke, LP-Chester
 
Um nur 2 Nachkommastellen anzuzeigen ersetzt Du
PHP:
$dltime=($size/1024)/($speed/8);
durch
PHP:
$dltime=round(($size/1024)/($speed/8),2);
 
Zurück