如果我在PHP中有以下变量:
$Message='Hello, this is just test message';
Run Code Online (Sandbox Code Playgroud)
如何以字节为单位获取其内容的大小?例如,要打印如下内容:
<p>Message size is 20KB</p>
Run Code Online (Sandbox Code Playgroud)
Mik*_*osh 52
strlen返回字符串中的字节数,而不是字符长度.在此处查看PHP手册.
仔细看看:
注意:
strlen()返回字节数而不是字符串中的字符数.
如果你把结果和乘以8,你可以获得位.
这是一个可以轻松为您做数学运算的函数.
function strbits($string){
return (strlen($string)*8);
}
Run Code Online (Sandbox Code Playgroud)
请注意,如果使用,memory_get_usage()则返回错误的值.内存获取使用量是PHP脚本分配的内存量.这意味着,在其解析器中,它为字符串和字符串的值分配内存.因此,设置var之前和之后的值将高于预期值.
例如,字符串:Hello, this is just test message,产生以下值:
Memory (non-real): 344 bytes
Strlen: 32 Bytes
Strlen * 8bits: 256 bits
Run Code Online (Sandbox Code Playgroud)
这是代码:
<?php
$mem1 = memory_get_usage();
$a = 'Hello, this is just test message';
echo "Memory (non-real): ". (memory_get_usage() - $mem1)."\n";
echo "Strlen: ". strlen($a)."\n";
echo "Strlen * 8bits: ". (strlen($a) * 8),"\n";
Run Code Online (Sandbox Code Playgroud)
SJP*_*SJP 10
$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;
Run Code Online (Sandbox Code Playgroud)
如果您正在使用任何类型的 var,这都很好。
字符是一个字节,所以只需检查字符串长度.如果需要,则除以1024(准备小数).
<?php echo "Message size is ".strlen($Message)."B"; ?>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
37760 次 |
| 最近记录: |