Filesize in units indelen

Door Onbekend Onbekend, 19 jaar geleden, 3.111x bekeken

Je haalt te grootte van een bestand op, met deze snippet kun je makkelijk in zo klein mogelijke groottes verdelen en een goeie eenheid er achter plakken..

Voorbeeld: http://phphulp.gamerswiki.nl/unitize.php

Gesponsorde koppelingen

PHP script bestanden

  1. filesize-in-units-indelen

 

Er zijn 9 reacties op 'Filesize in units indelen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Richard van Velzen
Richard van Velzen
19 jaar geleden
 
0 +1 -0 -1
Ik vind deze (van http://www.devarea.nl/wiki/page/Handige-PHP-functies.html#wikiHeading2) veel duidelijker:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function roundsize($bytes, $float = 2){
    $byte_array = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
    static $byte_size  = null;
    if(is_null($byte_size)) {
        $byte_size = count($byte_array);
    }

    for($i = 0; $i < $byte_size && $bytes >= 1024; ++$i, $bytes /= 1024);
    return number_format($bytes, $float) . ' ' . $byte_array[$i];
}

echo roundsize(filesize(__FILE__));[/code]
Onbekend Onbekend
Onbekend Onbekend
19 jaar geleden
 
0 +1 -0 -1
Zo kan het ook ;)
Arian Stolwijk
Arian Stolwijk
19 jaar geleden
 
0 +1 -0 -1
Ik heb deze gemaakt een tijdje terug:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function goede_eenheid_bytes($bytes,$decimalen=2){
    $level = floor((log($bytes)/log(2))/10);
    $units = array('B','kB','MB','GB','TB','PB');
    if($level <= count($units) and $level > 0){
        $bytes = round($bytes / pow(2,$level*10),$decimalen);    
        if(isset($units[$level])){
            return $bytes.' '.$units[$level];
        }
    }

    return $bytes.' '.$units[0];
}

?>
Iltar van der berg
iltar van der berg
19 jaar geleden
 
0 +1 -0 -1
Hoezo is deze PHP 6 ?
GaMer B
GaMer B
19 jaar geleden
 
0 +1 -0 -1
Voor de PHP beginners onder ons, meer "verstaanbare" PHP code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
function byte_format($num)
{


    if ($num >= 1000000000000)
    {

        $num = round($num/1099511627776)/10;
        $unit  = 'TB';
    }

    elseif ($num >= 1000000000)
    {

        $num = round($num/107374182)/10;
        $unit  = 'GB';
    }

    elseif ($num >= 1000000)
    {

        $num = round($num/104857)/10;
        $unit  = 'MB';
    }

    elseif ($num >= 1000)
    {

        $num = round($num/102)/10;
        $unit  = 'KB';
    }

    else
    {
        $unit = 'bytes';
        return number_format($num).' '.$unit;
    }

        return number_format($num, 1).' '.$unit;
}[
/code]

EDIT: is een functie in [url=http://www.codeigniter.com]CodeIgniter[/url]
PHP erik
PHP erik
19 jaar geleden
 
0 +1 -0 -1
Soms is de oplossing simpeler dan het lijkt. Namelijk gewoon php.net/filesize intypen :-)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
function bytestostring($size, $precision = 0) {
    $sizes = array('YB', 'ZB', 'EB', 'PB', 'TB', 'GB', 'MB', 'kB', 'B');
    $total = count($sizes);

    while($total-- && $size > 1024) $size /= 1024;
    return round($size, $precision).$sizes[$total];
}

?>

http://nl3.php.net/filesize
GaMer B
GaMer B
19 jaar geleden
 
0 +1 -0 -1
Ja, en zo kennen we nog wel meer varianten :o).
Richard van Velzen
Richard van Velzen
19 jaar geleden
 
0 +1 -0 -1
Toch is de variant die als script gepost is het minst effectief, aangezien het recursie gebruikt. (;
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP erik
PHP erik
19 jaar geleden
 
0 +1 -0 -1
Ach het hoeft niet altijd het beste te zijn natuurlijk. Nu hebben mensen genoeg keuze. Maar bij dit soort dingen vind ik wel dat je verder kan kijken dan je neus lang is aangezien een geoptimaliseerd script hiervoor al op php.net/filesize staat.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. filesize-in-units-indelen

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.