![]() |
запись бинарных данных php
Стоит задача слопатить бинарный файл с помощью php. Научился запихивать по одному байту, типа так
"fwrite($fh,pack("c", $value))", а как записать например число 150 в 3 байта? |
Цитата:
pack("cxx", 150); |
здорово,) теперь почти все ясно, как я понимаю 100000 занимает 3 байта, а вот как его записать ровно в 3 байта, когда использую pack("f", 100000); выделяется 4.
|
Все дальше сам разобрался, сделал вот так
if (0 <= $size && $size < 256) fwrite($fh,pack("xxc", $size)); elseif (256 <= $size && $size < 65536) fwrite($fh,pack("xn", $size)); else { $pref = $size % 65536; $main = ($size - $pref) / 65536; fwrite($fh,pack("c", $main)); if (0 <= $pref && $pref < 256) fwrite($fh,pack("xc", $pref)); elseif (256 <= $pref && $pref < 65536) fwrite($fh,pack("n", $pref)); } |
| Время: 09:51 |