Bei Downloads wird oft neben dem Link die Größe angegeben, um den Nutzer auf die vorraussichtliche Downloadzeit einzustellen.
Die Größe einer Datei lässt sich mit PHP ganz einfach ermitteln und ausgeben:
<?php
echo filesize("pfad/zur/datei.exe");
?>
In den Anführungszeichen einfach den (relativen) Pfad der Datei eintragen.
Die Ausgabe erfolgt in Byte.
Das ist oft unpraktisch, da Nutzer Angaben in Megabyte gewohnt sind.
filesize() gibt aber eine Zahl zurück mit der sich auch rechnen lässt.
Ein Megabyte sind bekanntlich eine Million Bytes. Um die Angaben umzurechnen muss man also nur durch 1000000 teilen und die Einheit ergäzen:
<?php
$size = filesize("pfad/zur/datei.exe")/1000000;
echo "Die Datei ist $size MB groß!";
?>
Wie Sie die Ausgabe, die noch etwas lang und unübersichtlich zu lesen ist, runden können, erfahren Sie hier: PHP: round() – Zahlen runden
Hinweis: Bei Dateien >2GB gibt es aufgrund der Verwendung von Integern oft Probleme und filesize() ist hierfür nicht geeignet.
Gerundetete filesize ausgeben
Um die gerundetete Filesize auszugeben, muss man PHP round() die Filesize als Parameter übergeben und die gewünschte Anzahl der Nachkommastellen mit angeben.
Eine mögliche Umsetzung sieht so aus:
<?php
$size = round(filesize("BeispielDatei.exe")/1000000, 2);
echo "Die Datei ist $size MB groß!"
?>
Da durch 1000000 geteilt wird, ist die Angabe als Megabyte aufzufassen.