Heute habe ich einen Tip für Extension Entwickler. Manchmal muss man die Größe von Dateien ausgeben, jedoch speichert TYPO3 diese Dateigrößen in der Regel in Bytes. Um nun eine für den normalen Menschen lesbare Ausgabe zu bekommen, bietet die Klasse t3lib_div eine nette Funktion zur Formatierung:

  1. t3lib_div::formatSize($sizeInBytes, $labels='');

Während sich der erste Parameter wie ich denke von selbst erklärt, bedarf der zweite eine kurze Erläuterung. Der zweite Parameter ist eine durch "|"-Zeichen separierte Liste von Labels für Bytes, Kilobytes, Megabytes und Gigabytes. Der Standard ist " | K| M| G". In Deutschland zumindest ist man eine andere Schreibweise gewohnt, also gleich mal ein Beispiel:

  1. $fileSize1 = 370
  2. $fileSize2 = 378880
  3. $fileSize3 = 387973120
  4. $fileSize4 = 397284474880
  5.  
  6. echo t3lib_div::formatSize($fileSize1, $labels=' Bytes | KB | MB | GB');
  7. // Ausgabe: 370 Bytes
  8. echo t3lib_div::formatSize($fileSize2, $labels=' Bytes | KB | MB | GB');
  9. // Ausgabe: 370 KB
  10. echo t3lib_div::formatSize($fileSize3, $labels=' Bytes | KB | MB | GB');
  11. // Ausgabe: 370 MB
  12. echo t3lib_div::formatSize($fileSize4, $labels=' Bytes | KB | MB | GB');
  13. // Ausgabe: 370 GB

Warum also kompliziert, wenn es auch einfach geht ;-)