Return a size in bytes,kilobytes,megabytes and gigabytes for given array or string. Can be used if you want to check performance for some script.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
<?php | |
function array_size($arr) { | |
$byte = 0; | |
foreach ($arr as $key => $val) { | |
$byte += is_array($val) ? array_size($val) : mb_strlen($val); | |
} | |
$kb = number_format($byte / 1024, 4); | |
$mb = number_format($byte / 1048576, 4); | |
$gb = number_format($byte / 1073741824, 4); | |
$result = array('Bytes: ' => $byte, 'Kilobytes: ' => $kb, 'Megabytes: ' => $mb, 'Gigabytes: ' => $gb); | |
return $result; | |
} | |
?> |
Topic: PHP / MySQLPrev|Next
Answer: Use the PHP strlen() function
You can simply use the PHP strlen() function to get the length of a string. The strlen() function return the length of the string on success, and 0 if the string is empty.
Let's take a look at the following example to understand how it actually works:
<?php $str1 = 'Hello world!'; echo strlen($str1); // Outputs: 12 echo "<br>"; $str2 = ' Hello world! '; echo strlen($str2); // Outputs: 17 ?>
Related FAQ
Here are some more FAQ related to this topic:
- How to find number of characters in a string in PHP
- How to find number of words in a string in PHP
- How to count all elements in an array in PHP
I found this very handy function on the php.net site in the user comments for the strlen() function. It accepts a string in ASCII or UTF-8 format and finds out how long that string is in bytes.
The function works by going through the string and adding how many bytes each character represents. For normal ASCII values this is a single byte so 1 is added to the total. Unicode characters can be up to 6 bytes and so the rest of this function works out how many bytes the character takes up by using AND calculations.
This string is useful if you want to know how large a string is in bytes, but have only a small amount of control over how the string will be presented. For example, if you download a web page and want to know how large it is in bytes you can pass the content of the page into this function.
You might think that the Content-Length header could be used here, but you can't rely on this header to be returned from every site. Some sites will simply omit the line, whilst others will just put a default amount there.