|
автор: Andrey V. (20.08.2005 в 11:24) |
|
| Здравствуйте!
Разбираю функции для работы с бинарными данными.
Функцию pack() разобрал, а вот каким образом использовать
функцию unpack() не понял. Объясните, если можно на примере,
как ее использовать и в каких случаях.
Спасибо | |
|
|
|
|
|
|
|
для: Andrey V.
(20.08.2005 в 11:24)
| | После того, как вы получаете результат работы функции pack()
<?php
$bin = pack("nvnv", 0x5722, 0x1148, 65, 66);
?>
|
Вы можете распаковать полученную строку $bin при помощи функции unpack()
<?php
$arr = unpack("nvnv", $bin);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(20.08.2005 в 13:04)
| | Именно так я и делал. Потом вывел на экран резульатат. Он оказался таковым: "Array". Вот я и засомневался. Таким он и должен быть?
Спасибо | |
|
|
|
|
|
|
|
для: Andrey V.
(20.08.2005 в 16:06)
| | да, таким чтобы просмотреть содержимое массива восползуюся кодом:
foreach($arr as $val)
{
echo $val;
}
|
| |
|
|
|
|
|
|
|
для: Bronepoz[)
(20.08.2005 в 16:10)
| | Вот какой получился результат:
22306
Почему именно такой, на основания чего.
Спасибо | |
|
|
|
|
|
|
|
для: Andrey V.
(20.08.2005 в 18:14)
| | Хм... вообще unpack() пример достаточно хитрой запутанной функции, вот как её можно использовать
<?php
$bin = pack("nnnn", 0x5722, 0x1148, 65, 66);
$arr = bin2hex($bin);
echo $arr;
$arr = unpack("n4chars", $bin);
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
|
При этом chars определяет название ключа массива. Для вышеприведёного примера unpack() выглядит следующим образом
<?php
$bin = pack("vnvn", 0x5722, 0x1148, 65, 66);
$arr = bin2hex($bin);
echo $arr;
$arr = unpack("v1chars/n1www/v1w/n1ww", $bin);
echo "<pre>";
print_r($arr);
echo "</pre>";
?>
|
Оказывается имена ключей не должны совпадать иначе они не выводятся. | |
|
|
|
|
|
|
|
для: cheops
(20.08.2005 в 22:42)
| | Спасибо, разобрался. | |
|
|
|