vb.org Archive

vb.org Archive (https://vborg.vbsupport.ru/index.php)
-   vB3 General Discussions (https://vborg.vbsupport.ru/forumdisplay.php?f=111)
-   -   Bytes conversion (https://vborg.vbsupport.ru/showthread.php?t=210423)

Excalibur82 04-06-2009 02:50 AM

Bytes conversion
 
Is there already a functions or class that can be used to convert bytes to whatever it should be such as KB, MB, GB, etc?

I have been trying to find a conversion method to include with my mod but every one of the method's I have found don't work, either I can't seem to get them to match vB or something.

Here is one I found:
PHP Code:

function ByteSize($bytes
    {
    
$size $bytes 1024;
    if(
$size 1024)
        {
        
$size number_format($size2);
        
$size .= ' KB';
        } 
    else 
        {
        if(
$size 1024 1024
            {
            
$size number_format($size 10242);
            
$size .= ' MB';
            } 
        else if (
$size 1024 1024 1024)  
            {
            
$size number_format($size 1024 10242);
            
$size .= ' GB';
            } 
        }
    return 
$size;
    }

// Returns '19.28mb'
print ByteSize('20211982'); 

Another method I found:
PHP Code:

    function formatRawSize($bytes) {
 
        
//CHECK TO MAKE SURE A NUMBER WAS SENT
        
if(!empty($bytes)) {
 
            
//SET TEXT TITLES TO SHOW AT EACH LEVEL
            
$s = array('bytes''kb''MB''GB''TB''PB');
            
$e floor(log($bytes)/log(1024));
 
            
//CREATE COMPLETED OUTPUT
            
$output sprintf('%.2f '.$s[$e], ($bytes/pow(1024floor($e))));
 
            
//SEND OUTPUT TO BROWSER
            
return $output;
 
        }
   } 

Thanks in advance

Lynne 04-06-2009 02:57 AM

PHP Code:

function vbmksize($bytes) {
  if (
$bytes 1000 1024)
    return 
number_format($bytes 10242) . " KB";
  if (
$bytes 1000 1048576)
    return 
number_format($bytes 10485762) . " MB";
  if (
$bytes 1000 1073741824)
    return 
number_format($bytes 10737418242) . " GB";
  return 
number_format($bytes 10995116277762) . " TB";



Excalibur82 04-06-2009 03:03 AM

Ok now how do I implement that into my file?

Do I use this:
Code:

$query = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "download AS download
                                                  LEFT JOIN " . TABLE_PREFIX . "download_screenshots AS screenshots ON (screenshots.file_id = download.id)");
        while ($dl = $db->fetch_array($query))
                {
                        $id = $dl['id'];
                        $version = $dl['version'];
                        $name = $dl['name'];
                        $size = $dl['size'];
                        $description = $dl['description'];
                        $username = $dl['username'];
                        $userid = $dl['userid'];
                        $sid = $dl['sid'];
                        $screenshot = $dl['sdata'];

$this->vbmksize($size);

                        eval('$display_shots .= "' . fetch_template('bfc_download_screenshot_display') . '";');
                        eval('$display_bit .= "' . fetch_template('bfc_download_bit') . '";');

                }

Notice the bold red code. Is that how it gets used? vBulletin functions are still new to me, sorry.

Lynne 04-06-2009 03:15 AM

This should work:
PHP Code:

$whatever vbmksize($size); 

Your functions are probably fine also. I've just been using the one I posted forever and haven't ever bothered to change it.

Excalibur82 04-06-2009 03:17 AM

thank you, gonna give that a try now.

--------------- Added [DATE]1238995567[/DATE] at [TIME]1238995567[/TIME] ---------------

Worked like a charm, tyvm.

--------------- Added [DATE]1238995605[/DATE] at [TIME]1238995605[/TIME] ---------------

BTW, what file is vbmksize() function located in? I had to create my own file but would rather include a vb file if it already exists in one.


All times are GMT. The time now is 08:22 AM.

Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2025, vBulletin Solutions Inc.

X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05418 seconds
  • Memory Usage 1,745KB
  • Queries Executed 10 (?)
More Information
Template Usage:
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)bbcode_code_printable
  • (4)bbcode_php_printable
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_navbar_search
  • (1)printthread
  • (5)printthreadbit
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • showthread
Included Files:
  • ./printthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/class_bbcode_alt.php
  • ./includes/class_bbcode.php
  • ./includes/functions_bigthree.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • printthread_start
  • bbcode_fetch_tags
  • bbcode_create
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • printthread_post
  • printthread_complete