Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Побайтовое чтение из переменной
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Побайтовое чтение из переменной

Страниц (1): [1]
 

1. Toxa - 16 Августа, 2012 - 22:07:51 - перейти к сообщению
Должно быть, идиотский вопрос, но я не разу не работал с бинарными данными прежде.

Суть в том, что есть поле BLOB в таблице, туда записана строка. Первые 2 байта - параметр, вторые 4 - значение. Потом опять по новой.

Подскажите, как прочитать из переменной N байт?

пробовал функцию unpack, но непонятно какую маску задавать.
В БД может быть различное число key=>value.
2. caballero - 16 Августа, 2012 - 22:17:48 - перейти к сообщению
все зависит о того как упаковано
от наличия знака от платформыв и т.д.
попробуй
unpack("S/I");
или для ассоциативного массива
unpack("Skey/Ivalue");
если данные повторяются нужно разбить строку на части а потом распаковывать
3. Toxa - 16 Августа, 2012 - 22:23:03 - перейти к сообщению
окей, как разбить строку по 6 байтов?
4. caballero - 16 Августа, 2012 - 23:02:06 - перейти к сообщению
str_split
(Добавление)
начала попробуй прочитать первый 6 байтов
5. Toxa - 16 Августа, 2012 - 23:44:16 - перейти к сообщению
str_split разделяет строку по символам, но не по байтам. На самом деле у меня и первые 2 байта и следующие 4 - числа
6. caballero - 17 Августа, 2012 - 00:15:47 - перейти к сообщению
символы и есть байты
но можешь преобразовать блоб в шеснадцатеричную строку а потом после разбиения обратно

прочитай сначала первые 6 байт и убедись что правильно получаешь данные
потом будет разбиратся с разбиением строки

 

Powered by ExBB FM 1.0 RC1