Intereting Posts
Удалить значение кнопки отправки из данных формы $ _POST PHP php 301 перенаправляет фактическое выполнение перенаправления 302 Включение / установка расширения Curl (OSX Server / PHP 5.3.3 / Apache 2.2) Карты SoapServer функционируют взаимозависимо, когда сообщения wsdl имеют одинаковое имя части Ошибка установки композитора Строковые числа в числовые числа в PHP Symfony2, проверка встроенных и незакрепленных форм с одинаковыми параметрами и разными результатами? PDO bindParam () с подготовленным оператором не работает Force PDF скачать с PHP – файл поврежден в Windows SoapVar / Param и вложенные повторяющиеся элементы в SOAP Дата Разница в php в дни? Как сгенерировать файл .ics с использованием PHP для заданного диапазона дат и времени Обновление свойств объекта в веточке Как написать скрипт php / htaccess для перенаправления переменных формы на другой веб-сайт В какую версию PHP была включена ReflectionClass?

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

Если у меня есть следующая переменная в 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