如何在PHP中获取变量内容的大小

时间:2012-07-06 16:48:54

标签: php

如果我在PHP中有以下变量:

$Message='Hello, this is just test message';

如何以字节为单位获取其内容的大小?例如,打印如下内容:

<p>Message size is 20KB</p>

5 个答案:

答案 0 :(得分:50)

strlen返回字符串中的字节数,而不是字符长度。查看PHP手册here

仔细看看:

  

注意:

     

strlen()返回字节数而不是字符串中的字符数。

如果你把结果和倍数乘以8,你就可以获得比特。

这是一个可以轻松为你做数学运算的函数。

function strbits($string){
    return (strlen($string)*8);
}

注意,如果您使用memory_get_usage(),则会返回错误的值。内存获取使用量是PHP脚本分配的内存量。这意味着,在其解析器中,它为字符串和字符串的值分配内存。因此,设置var之前和之后的值将高于预期值。

示例,字符串:Hello, this is just test message生成以下值:

Memory (non-real): 344 bytes
Strlen: 32 Bytes
Strlen * 8bits: 256 bits

以下是代码:

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

答案 1 :(得分:8)

字符是一个字节,所以只需检查字符串长度。如果你需要以KB为单位除以1024(准备小数)。

<?php echo "Message size is ".strlen($Message)."B"; ?>

答案 2 :(得分:4)

strlen() 返回字符串中的字节数。

答案 3 :(得分:4)

$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;

如果您使用任何类型的var。

,这很好

答案 4 :(得分:1)

您应该使用字符串长度函数:

strlen($Message)

您还应该查看php手册: http://php.net/manual/en/function.strlen.php