Versio

Filesize in units indelen

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

BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  

PHP script bestanden

  1. filesize-in-units-indelen

 

9 reacties op 'Filesize in units indelen'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Richard van Velzen
Richard van Velzen
5 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]
Luuk Schakenraad
Luuk Schakenraad
5 jaar geleden
 
0 +1 -0 -1
Zo kan het ook ;)
Arian Stolwijk
Arian Stolwijk
5 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
5 jaar geleden
 
0 +1 -0 -1
Hoezo is deze PHP 6 ?
GaMer B
GaMer B
5 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
5 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
5 jaar geleden
 
0 +1 -0 -1
Ja, en zo kennen we nog wel meer varianten :o).
Richard van Velzen
Richard van Velzen
5 jaar geleden
 
0 +1 -0 -1
Toch is de variant die als script gepost is het minst effectief, aangezien het recursie gebruikt. (;
PHP erik
PHP erik
5 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.

  • Labels
  • Geen tags toegevoegd.
Get Adobe Flash player