PHP format (file) storage data size (SIZE) display

WBOY
Release: 2016-08-08 09:31:54
Original
1021 people have browsed it

Sometimes we need to display the size of a certain file or the size of other data on the web page.

This number often spans a large span. If it is in B, it may be a single digit. If it is 1G, it will be a number up to 1073741824. At this time, we need to format it according to the size. For example, if it is less than 1K, it will be displayed in B. If it is less than 1K, it will be displayed in B. 1M is displayed in KB, less than 1G is displayed in MB, and so on...

The formatting function reference is as follows:

<span>//</span><span>格式化size显示</span>
<span>function</span> formatSize(<span>$b</span>,<span>$times</span>=0<span>){
</span>    <span>if</span>(<span>$b</span>>1024<span>){
        </span><span>$temp</span>=<span>$b</span>/1024<span>;
        </span><span>return</span> formatSize(<span>$temp</span>,<span>$times</span>+1<span>);
    }</span><span>else</span><span>{
        </span><span>$unit</span>='B'<span>;
        </span><span>switch</span>(<span>$times</span><span>){
            </span><span>case</span> '0':<span>$unit</span>='B';<span>break</span><span>;
            </span><span>case</span> '1':<span>$unit</span>='KB';<span>break</span><span>;
            </span><span>case</span> '2':<span>$unit</span>='MB';<span>break</span><span>;
            </span><span>case</span> '3':<span>$unit</span>='GB';<span>break</span><span>;
            </span><span>case</span> '4':<span>$unit</span>='TB';<span>break</span><span>;
            </span><span>case</span> '5':<span>$unit</span>='PB';<span>break</span><span>;
            </span><span>case</span> '6':<span>$unit</span>='EB';<span>break</span><span>;
            </span><span>case</span> '7':<span>$unit</span>='ZB';<span>break</span><span>;
            </span><span>default</span>: <span>$unit</span>='单位未知'<span>;
        }
        </span><span>return</span> <span>sprintf</span>('%.2f',<span>$b</span>).<span>$unit</span><span>;
    }
}</span>
Copy after login

Call:

<span>echo</span> formatSize('20667564');
Copy after login

The result is:

19.71MB
Copy after login

Description:

The parameter $b is a number in B, and $times is used to identify how many times this function has been recursed.

For the uncommon units TB, PB, EB, and ZB, please refer to the notes below (sourced from the Internet):

1bit (this bit represents a binary number) 1Byte (this word is also called "bit" when transliterated but represents a hexadecimal number)
1B=1Byte=8bit
1 kB = 1024 B (kB - kilobyte) One MB = 1024 kB (MB - megabyte) One GB = 1024 MB (GB - gigabyte) One TB = 1024 GB (TB - terabyte) One PB = 1024 TB (PB - petabyte) 1 EB = 1024 PB (EB - eksabyte) Ai
1 ZB = 1024 EB (ZB - zettabyte) YB = 1024 ZB (YB - yottabyte) YB = 1024 YB (BB - brontobyte)
yotta, 尧[it], Y. 10^21,
zetta, ze[it], Z. 10^18,
exa, Ai[khazia], E. 10^15,
peta, shoot[it], P. 10 ^12,
tera, 太[拉], T. 10^9,
giga, 吉[卡], G. 10^6,
mega, trillion, M. 10^3

The above introduces the PHP format (file) storage data size (SIZE) display, including the content. I hope it will be helpful to friends who are interested in PHP tutorials.


Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!