Dateigröße umrechnen(lesbar)

edit | delete

Autor: Ralf v.d.Mark

eingetragen: Dienstag, 28. März 2023 um 10:20 Uhr (13/2023 Kalenderwoche)

geändert: Montag, 04. Dezember 2023 um 12:06 Uhr (49/2023 Kalenderwoche)

Keywords: lesbare dateigroesse dateigröße filesize stellen

Kategorien: PHP, PHP-Symfony,

Text:

Funktion um eine Byte-Größe in KB, GB etc. umzurechnen

Quellcode:  

/**
 * Funktion um eine Byte-Größe in KB, GB etc. umzurechnen.
 *
 * VORSICHT: (int) funktioniert auf 32Bit-Systeme nur bis 2.147.483.647 Byte
 *
 * @param integer $groesseRoh (Größe in Bytes)
 * @param integer $stellenHinterKomma (optional)
 * @param string $htmlTagName (z. B. span)
 * @param string $htmlTagZusatz (z. B. Style oder Title)
 *
 * @return string (Umgerechnete Dateigröße)
 */
function lesbare_dateigroesse($groesseRoh,
                              $stellenHinterKomma = 2,
                              $htmlTagName = 'span',
                              $htmlTagZusatz = ''): string
{
    $groesseRoh = (int)$groesseRoh;

    if (empty($groesseRoh)) {
        $rueckgabeWert = '0 Bytes';
    } else {
        $groesseRoh = (float)$groesseRoh;
        if ($groesseRoh >= 1099511627776) {
            $rueckgabeWert = round(($groesseRoh / 1099511627776), $stellenHinterKomma)
                . ' TB';
        } elseif ($groesseRoh >= 1073741824) {
            $rueckgabeWert = round(($groesseRoh / 1073741824), $stellenHinterKomma)
                . ' GB';
        } elseif ($groesseRoh >= 1048576) {
            $rueckgabeWert = round(($groesseRoh / 1048576), $stellenHinterKomma)
                . ' MB';
        } elseif ($groesseRoh >= 1024) {
            $rueckgabeWert = round(($groesseRoh / 1024), $stellenHinterKomma)
                . ' KB';
        } else {
            $rueckgabeWert = $groesseRoh
                . " Byte";
        }
    }
    $rueckgabeWert = str_replace('.', ',', $rueckgabeWert);

    if (!empty($htmlTagName)) {
        return '<' . $htmlTagName . ' title="' . $groesseRoh . ' Bytes"' 
                    . $htmlTagZusatz
             . '>' . $rueckgabeWert . '</' . $htmlTagName . '>';
    }
    return $rueckgabeWert;

}/* function lesbare_dateigroesse(...) */