Как получить размер содержимого переменной в PHP - программирование
Подтвердить что ты не робот

Как получить размер содержимого переменной в PHP

Если у меня есть следующая переменная в PHP:

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

Как я могу получить размер его содержимого в байтах? Например, чтобы напечатать что-то вроде:

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

Ответ 1

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

Это хорошо, если вы работаете с любым типом var.

Ответ 2

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

Ответ 3

Символ - один байт, поэтому просто проверьте длину строки. Разделите на 1024, если вам это нужно в KB (будьте готовы к десятичной).

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

Ответ 4

strlen() возвращает количество байтов в строке.

Ответ 5

Вы должны использовать функцию длины строки:

strlen($Message)

Вы также должны проверить руководство по php: http://php.net/manual/en/function.strlen.php