Если у меня есть следующая переменная в PHP:
$Message='Hello, this is just test message';
Как я могу получить размер его содержимого в байтах? Например, чтобы напечатать что-то вроде:
<p>Message size is 20KB</p>
Если у меня есть следующая переменная в PHP:
$Message='Hello, this is just test message';
Как я могу получить размер его содержимого в байтах? Например, чтобы напечатать что-то вроде:
<p>Message size is 20KB</p>
$start_memory = memory_get_usage();
$foo = "Some variable";
echo memory_get_usage() - $start_memory;
Это хорошо, если вы работаете с любым типом var.
strlen
возвращает количество байтов в строке, а не длину символа. Просмотрите руководство по PHP здесь.
Посмотрите внимательно:
Примечание:
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";
Символ - один байт, поэтому просто проверьте длину строки. Разделите на 1024, если вам это нужно в KB (будьте готовы к десятичной).
<?php echo "Message size is ".strlen($Message)."B"; ?>
strlen()
возвращает количество байтов в строке.
Вы должны использовать функцию длины строки:
strlen($Message)
Вы также должны проверить руководство по php: http://php.net/manual/en/function.strlen.php