Автор Тема: Работа с длинной двоичной переменной побайтно  (Прочитано 2165 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн gor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://509.ru
Формирую некий двоичный пакет с разными данными следующим образом:

$packet = pack("C",hex FF).pack("L",$time);
$packet .= pack ("a4",inet_aton($shost));
$packet .= pack ("a4",inet_aton($dhost));
$packet .= pack ("I2",$sport,$dport);

В общем, неважно что там внутри, я просто хотел показать, что данные там разнородные.
Так вот.
Как мне перед отправкой этого пакета проверить каждый байт на равенство "FF"? Мне нужно каждый байт "FF" дополнить до двух байт - "FFFF".

Оффлайн gor

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 11
  • +0/-0
  • 0
    • Просмотр профиля
    • http://509.ru
Работа с длинной двоичной переменной побайтно
« Ответ #1 : 28 Октября 2004, 12:02:06 »
Простите, господа, переволновался :)
Сделал так:
@klop = unpack ("C26",$packet);
for ($i=0;$i<26;$i++) {
  $msg .= ($klop[$i]==255)?
   (pack("C",hex FF).pack("C",hex FF)):
   (pack("C",$klop[$i]));
}

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28