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