Нужно узнать объем занимаемой памяти вне зависимости от типа переменной(например для массива), кодировки и т.п.
Как? Наверняка есть какая-то функция? Не могу найти ничего похожего.
Спустя 18 минут, 55 секунд (16.11.2011 - 15:32) linker написал(а):
Длина строки в php равно объём занимаемой памяти, ибо strlen() считает не количество символов, а количество байт. Если UTF-8, то mb_strlen().
Спустя 7 минут, 5 секунд (16.11.2011 - 15:39) LRCenter написал(а):
А если это не строка а массив?
Спустя 39 минут, 31 секунда (16.11.2011 - 16:18) dadli написал(а):
LRCenter
если масив может так?
записиваем вся елементи масива в тесктовом фаиле, а потом понимаем сколко весит етот фаил:
если масив может так?
записиваем вся елементи масива в тесктовом фаиле, а потом понимаем сколко весит етот фаил:
$mas = array("aaaa","bbbb","dddd","cccc","ff");
if (is_array($mas)) {
$hand = fopen("ttt.txt",'w+');
foreach ($mas as $val) {
fwrite($hand,$val);
}
}
$obiom = stat("ttt.txt");
echo $obiom[7];
Спустя 15 минут, 58 секунд (16.11.2011 - 16:34) linker написал(а):
Ну а подумать, рекурсия и всё такое
function sizeVar($var)
{
$size = 0;
if (is_array($var))
{
foreach($var as $val)
$size += sizeVar($val);
}
else
$size = strlen($var);
return $size;
}
$a = array('abc', 'abcdtf', array('rtt', 'ddd'));
echo sizeVar($a);
Спустя 3 часа, 56 минут, 41 секунда (16.11.2011 - 20:31) vital написал(а):
echo(memory_get_usage());
$myvar='THISISNOTATEXT';
echo(memory_get_usage());
А вообще базовые типы данных имеют фиксированный размер и не изменяются динамически.
МОжете просто получать тип переменной=ее размер.
Спустя 11 часов, 20 минут, 51 секунда (17.11.2011 - 07:52) linker написал(а):
vital
У меня например, на серваках, такой финт не проходит. А строка очень даже меняет свой размер, массив тоже базовый тип, лучше говорить "скалярные типы", а не базовые.
У меня например, на серваках, такой финт не проходит. А строка очень даже меняет свой размер, массив тоже базовый тип, лучше говорить "скалярные типы", а не базовые.
Спустя 7 часов, 25 минут, 13 секунд (17.11.2011 - 15:17) LRCenter написал(а):
Мда, сложно все как-то. Странно что нет спец. функции.
Спустя 12 минут, 54 секунды (17.11.2011 - 15:30) linker написал(а):
Ну потому что PHP не строго типизированный язык, а потому в любой момент строка может стать массивом, или наоборот. Здесь нет понятия байт, слово, двойное слово и т.п. здесь всё integer. Вобщем не вижу смысла.
Спустя 1 минута, 56 секунд (17.11.2011 - 15:32) ADiel написал(а):
если важен только факт изменения массива, можно использовать strlen(serialise($array))
_____________
Меньше кода - меньше багов ©