Essah (13.04.2014)
-
13.04.2014, 19:36 #1U-Labs Routinier
- Registriert seit
- 08.01.2012
- Beiträge
- 279
- Blog Entries
- 1
Thanked 69 Times in 45 Posts
Größe einer Datei lesbar ausgeben
Hallo! Ich habe eine Seite Programmiert wo man Dateien runterladen kann. Auf der Seite möchte ich hinschreiben wie groß die Datei ist bevor man sie herunterladen kann. Wenn ich mir das mit filesize("Datei.zip") hole bekomme ich ja Bytes. Ich habe es versucht eine Funktion zu machen die das je nach Größe besser lesbar ausgibt:
Es geht aber ich mache da ja eigentlich immer das selbe für jede Einheit. Ich frage mich ob man das vielleicht besser machen kann?PHP-Code:function MacheDateigroesseLesbar($Dateigroesse)
{
$lesbar = "";
if($Dateigroesse < 1000)
{
$lesbar = round($Dateigroesse,1)."Byte";
}
else
{
$kilobytes = $Dateigroesse/1000;
if($kilobytes < 1000)
{
$lesbar = round($kilobytes, 1)."KiloBytes";
}
else
{
$megabytes = $kilobytes/1000;
if($megabytes < 1000)
{
$lesbar = round($megabytes,1)."MegaByte";
}
}
}
return $lesbar;
}
PS: Bin noch Anfänger!
-
13.04.2014, 19:38 #2
AW: Größe einer Datei lesbar ausgeben
-
The Following User Says Thank You to Baumstumpf For This Useful Post:
-
13.04.2014, 19:49 #3U-Labs Routinier
- Registriert seit
- 08.01.2012
- Beiträge
- 279
- Blog Entries
- 1
Thanked 69 Times in 45 Posts
AW: Größe einer Datei lesbar ausgeben
Danke, aber das verstehe ich nicht ganz.
max soll den Maximalwert zurückgeben. Aber was macht das für einen Sinn den größeren Wert von der Dateigröße und 0 zu bekommen? Das ist doch immer die Dateigröße wenn die nicht 0 istPHP-Code:$bytes = max($bytes, 0);

log soll laut php.net der Logarithmus sein ich verstehe aber nicht was dieser Logarithmus sein sollPHP-Code:$pow = floor(($bytes ? log($bytes) : 0) / log(1024));
-
17.04.2014, 09:46 #4Gelöschter BenutzerGast
AW: Größe einer Datei lesbar ausgeben
Das max() hat irgendwas damit zu tun, dass signed ints nur maximal ein Value von (2^31)-1 haben können, max returned mixed values (sprich float, double, ...); brauch man aber afaik nicht mehr (die Stackoverflow Antwort ist von 2010).
Logarithmus ist ne ganz einfache Rechenoperation wie + und -, schau dir am besten im Internet irgendeine Seite an die das erklärt, kann hier im Forum glaube ich keiner besser.
Wenn du eine simplere Funktion möchtest, ohne Logarithmen und co. damit du es evtl. verstehst:
PHP-Code:function FormatBytes($bytes) {
$units = array('B', 'KB', 'MB', 'GB', 'TB');
$output = $bytes; $i = 0;
while($output > 1024) {
$output = ($output / 1024);
$i++;
}
return sprintf('%s %s', $output, $units[$i]);
}
-
The Following User Says Thank You to Gelöschter Benutzer For This Useful Post:
Essah (19.04.2014)
Ähnliche Themen
-
C# Gerundete Zahl ausgeben
Von Gast78236 im Forum AndereAntworten: 5Letzter Beitrag: 06.11.2013, 23:04 -
Hyperlink einer HTML Datei?
Von x BoooM x im Forum HTMLAntworten: 2Letzter Beitrag: 08.11.2012, 17:49 -
Wie erstelle ich aus einer Videodatei eine GIF Datei ?
Von h00r4y im Forum TutorialsAntworten: 0Letzter Beitrag: 12.04.2012, 11:05 -
WinXP \$Secure ist beschädigt und nicht lesbar - CHKDSK.
Von Bazs im Forum WindowsAntworten: 2Letzter Beitrag: 11.04.2012, 21:05 -
[PHP] Geladene Bilder ausgeben
Von Gelöschter Benutzer im Forum PHPAntworten: 1Letzter Beitrag: 03.03.2012, 16:50
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.
Zitieren