Страница 1 из 1

[PHP] Передача бинарной строки

Добавлено: 2011-03-30 8:40:43
avalon
Здравствуйте. Возникла необходимость передачи массива через бинарную строку во внешнюю программу, опыта работы с бинарными строками нет, пробовал pack() unpack() - не очень то и получается, вернее получается упаковать, а вот распаковать так как нужно не получается. Передача данных будет из юникс в винду. Массив имеет такую структуру:

Код: Выделить всё

$array = row(
              'field1' => 1,
              'field2' => '30.03.2011',
              'field3' => 1
             );

Спасибо.

Re: [PHP] Передача бинарной строки

Добавлено: 2011-03-30 11:55:27
hizel
покажите как вы пакуете и распаковываете

Re: [PHP] Передача бинарной строки

Добавлено: 2011-03-31 13:51:53
avalon
Решено. Может кому и пригодиться, вот пример:

Код: Выделить всё

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