И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
-
avalon
- рядовой
- Сообщения: 41
- Зарегистрирован: 2008-01-24 18:09:47
- Откуда: Украина
Непрочитанное сообщение
avalon » 2011-03-30 8:40:43
Здравствуйте. Возникла необходимость передачи массива через бинарную строку во внешнюю программу, опыта работы с бинарными строками нет, пробовал pack() unpack() - не очень то и получается, вернее получается упаковать, а вот распаковать так как нужно не получается. Передача данных будет из юникс в винду. Массив имеет такую структуру:
Код: Выделить всё
$array = row(
'field1' => 1,
'field2' => '30.03.2011',
'field3' => 1
);
Спасибо.
avalon
-
Хостинг HostFood.ru
-
Хостинг HostFood.ru
Тарифы на хостинг в России, от 12 рублей:
https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.:
https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах:
https://www.host-food.ru/domains/
-
hizel
- дядя поня
- Сообщения: 9032
- Зарегистрирован: 2007-06-29 10:05:02
- Откуда: Выборг
Непрочитанное сообщение
hizel » 2011-03-30 11:55:27
покажите как вы пакуете и распаковываете
В дурацкие игры он не играет. Он просто жуткий, чу-чу, паровозик, и зовут его Блейн. Блейн --- это Боль.
hizel
-
avalon
- рядовой
- Сообщения: 41
- Зарегистрирован: 2008-01-24 18:09:47
- Откуда: Украина
Непрочитанное сообщение
avalon » 2011-03-31 13:51:53
Решено. Может кому и пригодиться, вот пример:
Код: Выделить всё
function pack_array($p_array){
$l_bin = '';
foreach ($p_array as $value) {
if(is_int($value)) $l_bin .= pack('I', $value);
elseif(is_string($value)) $l_bin .= pack('A'.strlen($value), $value);
}
if($l_bin) return $l_bin;
else return FALSE;
}
$row= array(
'field1' => 1,
'field2' => '30.03.2011',
'field3' => 1
);
$bin = pack_array($row);
$row1 = unpack('I1field1/A10field2/I1field3', $bin);
var_dump($row);
var_dump($row1);
avalon