Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 04-06-2009, 03:50 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default 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
Reply With Quote
  #2  
Old 04-06-2009, 03:57 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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";

Reply With Quote
  #3  
Old 04-06-2009, 04:03 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #4  
Old 04-06-2009, 04:15 AM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
  #5  
Old 04-06-2009, 04:17 AM
Excalibur82 Excalibur82 is offline
 
Join Date: Dec 2008
Posts: 175
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

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.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:24 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.08109 seconds
  • Memory Usage 2,226KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (1)bbcode_code
  • (4)bbcode_php
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (5)post_thanks_box
  • (5)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (5)post_thanks_postbit_info
  • (5)postbit
  • (5)postbit_onlinestatus
  • (5)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.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/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete